2016-06-15 22 views
2

私はこれを修正する方法がないので、助けてください!アプリケーション終了後に整数値を保存して取得する

私はユーザーがボタンを押すたびに数字を表示するカウンターアプリを作成しています。 0から最大9999までです。私の問題は、ユーザーがアプリケーションを閉じた後、再び0から始まりますが、ユーザーが0を表示するのではなく最後に表示した番号を表示することです。私は多くの共有された嗜好コードを試したが、どれも働いていなかったここに私のコードは次のとおりです。

import android.content.Context; 
import android.content.SharedPreferences; 
import android.media.MediaPlayer; 
import android.preference.PreferenceManager; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageButton; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 

    private int x; 
    Context context = this; 
    MediaPlayer mp; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     final TextView number=(TextView) findViewById(R.id.numbers); 
     ImageButton btn_count=(ImageButton) findViewById(R.id.btn_countn); 
     ImageButton btn_reset=(ImageButton) findViewById(R.id.btn_resetn); 
     mp = MediaPlayer.create(context, R.raw.button_press); 

     number.setText(String.format("%04d", x)+""); 

     btn_count.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       try { 
        if (mp.isPlaying()) { 
         mp.stop(); 
         mp.release(); 
         mp = MediaPlayer.create(context, R.raw.button_press); 
        } mp.start(); 
       } catch(Exception e) { e.printStackTrace(); } 
       x = x +1; 
       number.setText(String.format("%04d", x)+""); 
      } 
     }); 

     btn_reset.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       try { 
        if (mp.isPlaying()) { 
         mp.stop(); 
         mp.release(); 
         mp = MediaPlayer.create(context, R.raw.button_press); 
        } mp.start(); 
       } catch(Exception e) { e.printStackTrace(); } 
       x=0; 
       number.setText(String.format("%04d", x)+""); 
      } 
     }); 
    } 
} 
+0

共有設定コードも追加します。 –

答えて

0

は、あなたがこのような何かを行うことができます SharedPreferencesを使用して...あなたが得る好みが0であれば、あなたは0からゲームをbegingことができますので、何も、以前に保存されなかったことを意味し、保存して確認してくださいどのような検証します
public class MainActivity extends AppCompatActivity { 

    private int x; 
    SharedPreferences prefs; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     prefs = PreferenceManager.getDefaultSharedPreferences(this); 
     x = prefs.getInt("count", 0); 

     final TextView number=(TextView) findViewById(R.id.numbers); 
     ImageButton btn_count=(ImageButton) findViewById(R.id.btn_countn); 
     ImageButton btn_reset=(ImageButton) findViewById(R.id.btn_resetn); 

     number.setText(String.valueOf(x)); 

     btn_count.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       x++; 
       prefs.edit().putInt("count", x).apply(); 
       number.setText(String.valueOf(x)); 
      } 
     }); 

     btn_reset.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       x=0; 
       prefs.edit().putInt("count", x).apply(); 
       number.setText(String.valueOf(x)); 
      } 
     }); 
    } 
} 
+0

あなたに感謝:)私の日の仲間を保存:) –

1

あなたはこのためにAndroid Preferencesを使用する必要があります。

どのように?

アプリを閉じた後、あなたはカウンター

SharedPreferences buttonCounterValue = getSharedPreferences("counter", Activity.MODE_PRIVATE); 
SharedPreferences.Editor editor = buttonCounterValue.edit(); 
editor.putInt("myCounter", i); // 
editor.commit(); 

とアプリが再び開いているときに呼び出す必要がありますの実際の値を書き込むことができますメソッドを呼び出して取得されたときに定義します別の方法と戻ってそれを読んで...

例:

SharedPreferences buttonCounterValue = getPreferences(Activity.MODE_PRIVATE); 
int storedCounter = buttonCounterValue.getInt("myCounter", 0); 
:はそう
+0

ありがとう私は固定:) –

関連する問題