今、タップしてたまごのカウントダウンを行い0に近づけば近づくほどたまごにヒビがはいってるような画像の差分を表示し、0でたまごを割ってクリアーとなるようなアプリを制作しています。その際カウントの値は保持できているのでアプリを一旦中断してもカウントの値は保存されているのですが、たまごの画像はひび割れている差分までタップしていたのに最初の割れていないもとの卵に戻ってしまいます。一応一度だけタップすれば元のひび割れた差分に戻るのですが、毎回アプリをやめるたびに元の割れていないたまごに戻るのはどうかと思い質問させていただきました。画像の値を保持するためのアドバイスを頂けないでしょうか?
コード public class MainActivity extends AppCompatActivity { private int c; private SharedPreferences preferences; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // ファイルの準備 preferences = getSharedPreferences("count_data", MODE_PRIVATE); // データの読込(初期値100) c = preferences.getInt("count", 100); // データ表示 ((TextView) findViewById(R.id.tv)).setText("" + c); } public void onButton(View view) { if (c > 0) { c--; // カウントダウンした値を保存する SharedPreferences.Editor editor = preferences.edit(); editor.putInt("count", c); editor.apply(); } ((TextView) findViewById(R.id.tv)).setText("" + c); if (c< 70) { ((ImageView) findViewById(R.id.egg)).setImageResource(R.drawable.egg1);//たまごの差分 } if (c <40) { ((ImageView) findViewById(R.id.egg)).setImageResource(R.drawable.egg2);//たまごの差分 } if (c < 10) { ((ImageView) findViewById(R.id.egg)).setImageResource(R.drawable.egg3);//たまごの差分 } if (c <= 0) { ((TextView) findViewById(R.id.tv)).setText("クリアー"); ((ImageView) findViewById(R.id.egg)).setImageResource(R.drawable.egga);//たまごの差分 //これらの画像を保持したい } } public void onReset (View view){ //リセットボタンのメソッド new AlertDialog.Builder(MainActivity.this) //ダイアログ .setTitle("カウントをリセットをしますか(try to reset)?") .setMessage("Yseでリセット") .setIcon(R.drawable.er) .setPositiveButton( "Yes", new DialogInterface.OnClickListener() { @Override public void onClick( DialogInterface dialog, int which) { preferences = getSharedPreferences("count_data", MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.clear(); editor.commit(); c = preferences.getInt("count", 100); // データ表示 ((TextView) findViewById(R.id.tv)).setText("" + c); ((ImageView) findViewById(R.id.egg)).setImageResource(R.drawable.egg0);//リセット時最初のたまごの画像へ } }) .setNegativeButton("No", null) .show(); } public void Shere (View view){//結果シェア ShareCompat.IntentBuilder builder = ShareCompat.IntentBuilder.from(MainActivity.this); builder.setChooserTitle("あああ"); if (c>=1){ builder.setText("たまごが生まれるまでのこり"+c+"回だ!"); }else{ builder.setText("たまごがうまれたよ!おめでとう!"); } builder.setType("text/plain"); builder.startChooser(); } }
回答1件
あなたの回答
tips
プレビュー