나는 최고 점수의 사용자를 저장하고 싶습니다. 모든 게임에서 작동하지만 문제는 내가 게임을 종료 할 때 사용자가 높은 점수를 얻었습니다. 자동으로 설정되지만 모든 사용자가 휴식을 취한 다음 업데이트 할 때까지 표시하도록하고 싶습니다.sharedpreference를 사용하여 높은 점수를 저장합니다.
게임을 종료 한 후 보여됩니다대화 상자 : 높은 점수
private int getHighScore(){
SharedPreferences highScore=getSharedPreferences("high",0);
return highScore.getInt("highScore",0);
}
높은 점수를 표시 높은 점수
private void saveHighScore(){
SharedPreferences sharedPreferences=getSharedPreferences("data",0);
SharedPreferences.Editor writer=sharedPreferences.edit();
int displayValue=playerScore;
//Username-Highscore
writer.putInt("display",displayValue);
writer.commit();
display();
}
저장을 얻을 수
private void showGameOverDialog() {
int previousScore=getHighScore();
if(playerScore>previousScore){
saveHighScore();
}
//AlertDialog
//AlertDialog.Builder
AlertDialog.Builder builder= new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Exit Game");
builder.setMessage("Afraid?");
//Positive, Negative, Neutral
//Anonymous Inner Type Interface Implementation
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
exitGame();
}
});
builder.setNegativeButton("No",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
resetGame();
}
}
);
AlertDialog exitDialog=builder.create();
exitDialog.show();
}
방법
private void display(){
SharedPreferences sharedPreferences=getSharedPreferences("data",0);
String userString=sharedPreferences.getString("playerName","Nothing found");
int highScore=sharedPreferences.getInt("display",0);
username.setText(userString+"-"+highScore);
}
@VishalSharma prefernce 파일의 이름은 높은 점수를 저장하는 "데이터"이므로 이름을 검색하는 것이 "높음"이 아닌 "데이터"일 수는 있지만 위의 해결책을 시도해보십시오. 이게 작동하면. –
아니오 선생님, 작동하지 않습니다. –
@VishalSharma 지금 시도하십시오 ... 높은 점수를 저장하고 검색하는 데 사용 된 키가 다릅니다 –