2017-06-01 8 views
1

私はProgressBarに値を保存しようとしていますので、アプリケーションを終了(終了)して再度実行すると、同じ値が再度表示されます。私はsharedpreferencesを使用してこれを試しましたが、まだ保存していませんし、解決方法はわかりません。私はインターネットで見つけられるものすべてを調べましたが、「Entertextをtxt/xmlに保存する方法」のように常に単純化されていますが、それは私が探しているものではありません。私のonCreate私はまた、これらの変数が私のProgressBarの現在のステータスを保存する

SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPref.edit(); 

を宣言していると私MainActivity

int incFuel = 0; 
final String FUELBAR = "fuelBar"; 

SharedPreferences sharedPref; 
SharedPreferences.Editor editor; 

に、私は本当に私が行方不明だし、非常に感謝し何の単一の手掛かりを持っていないで

protected void onPause(){ 
    super.onPause(); 
    fuelBar = (ProgressBar) findViewById(R.id.fuelProgressBar); 
    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
    incFuel = sharedPref.getInt(FUELBAR, fuelBar.getProgress()); 
    fuelBar.setProgress(incFuel); 
} 

public void onResume(){ 
    super.onResume(); 
    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPref.edit(); 
    editor.putInt(FUELBAR, fuelBar.getProgress()); 
    editor.commit(); 
} 

public void onStop(){ 
    super.onStop(); 
    fuelBar = (ProgressBar) findViewById(R.id.fuelProgressBar); 
    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
    incFuel = sharedPref.getInt(FUELBAR, fuelBar.getProgress()); 
    fuelBar.setProgress(incFuel); 
} 

手助け。

+0

私はあなたのSharedPreference-Objectsにputコールしか見ることができません。あなたは今までに "ゲット"と呼んでいますか? – tobifasc

+0

コードを編集しました。もう一度見てください。 –

答えて

1

私はいくつかの問題を見ることができます。 とonResumeが十分であるよう

  1. まず、あなたのonStop()は、必要とされていません。

  2. onResumeは逆です。 (アクティビティがロードされた後にonResumeが呼び出され、アクティビティが閉じられたときにonPauseが発生します)

  3. また、ロードされた値で進捗を設定する必要があります。

以下のコードは正しい方向を指しているはずです。

protected void onPause(){ 
    super.onPause(); 
    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPref.edit(); 
    editor.putInt(FUELBAR, fuelBar.getProgress()); 
    editor.commit(); 

} 

public void onResume(){ 
    super.onResume(); 
    fuelBar = (ProgressBar) findViewById(R.id.fuelProgressBar); 
    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
    incFuel = sharedPref.getInt(FUELBAR, 0); 
    fuelBar.setProgress(incFuel); 
} 

public void onStop(){ 
    super.onStop(); 
} 
+1

gr8 thxこれは本当に助けになり、プログラムは完璧に機能しています。 –

関連する問題