0

は、私は次のコードを持っている:私は「passPhraseExample、」に値を入力するときonPause()のSharedPreferencesに保存された値がonResume()に復元されないのはなぜですか?

SharedPreferences KITPrefs; 
    EditText passPhraseExample; 

... 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     passPhraseExample = (EditText) findViewById(R.id.editTextPassPhraseExample); 
     KITPrefs = getPreferences(Activity.MODE_PRIVATE); 

    @Override 
    public void onResume() { 
     super.onResume(); 
     passPhraseExample.setText(KITPrefs.getString("passPhraseExample", "")); 
    } 

    @Override 
    public void onPause() { 
     super.onPause(); 
     SharedPreferences.Editor editor = KITPrefs.edit(); 
     editor.putString("passPhraseExample", passPhraseExample.getText() 
       .toString()); 
    } 

..yetを次のアクティビティに移動し、(エミュレータに)戻って、passPhraseExampleのEditTextは空です。入力した値を保存してから「復元」してはいけませんか?

答えて

3

変更をコミットしません。
onPause()に文字列を書き込んだ後、editor.commit()を呼び出します。そうしないと、変更内容は保存されません。

関連する問題