我是新手,我知道我会因为这个问题而被打败,但如果我得到答案,那将是值得的。我有一个游戏,当用户赢得第一轮比赛时,我希望保存分数并重新启动活动,而不是遍历所有代码并重置每个值。现在如何在活动重新启动时保持分数不重置。我还没有例子。
public class MainActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
// SET UP SPINS
private TextView spins;
private Button spin;
// SET UP CONTROLS
private TextView score;
private ProgressBar progressBar;
private static final int SHOW_BONUSACTIVITY = 1;
int nextspin = 0;
int alert;
int total = 0;
int totalspins = 14;
public int gamescore = 0;
public int currentgamescore = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.play_layout);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
这是我第一次检查是否有新游戏或是否保存了要在此处使用的高分的地方
if (GameState.INSTANCE.getScore() != 0){
gamescore = GameState.INSTANCE.getScore();}
如果用户获胜,他们将被发送到奖励游戏,然后返回查看他们是否已完成游戏并需要开始新游戏
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case (SHOW_BONUSACTIVITY): {
if (resultCode == Activity.RESULT_OK) {
int bonus = data.getIntExtra("money", 0);
gamescore=(gamescore + bonus);
score.setText(String.valueOf("SCORE: " + gamescore));
if (bigwin == true){
如果他们赢得了第一关,我将在此处保存游戏分数以将其带入新活动。
GameState.INSTANCE.addScore(gamescore);
Intent intent = new Intent(
MainActivity.this,
com.bigdaddyapp.android.blingo.MainActivity.class);
startActivity(intent);
}
}
}
}
}
下一个代码是枚举活动
public enum GameState {
INSTANCE;
private int score;
private GameState(){
score = 0;
}
public int getScore(){
return score;
}
public void addScore(int score){
this.score += score;
}
}