私は新しく、この質問に打ち負かされることはわかっていますが、答えが得られればそれだけの価値があります。ユーザーが最初のラウンドに勝ったときに、すべてのコードを調べてすべての値をリセットするのではなく、スコアを保存してアクティビティを再開したいというゲームがあります。アクティビティの再開時にスコアがリセットされないようにするにはどうすればよいですか。今のところ例はありません。
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;
}
}