2012-08-06 17 views

回答

1

1.首先,每當你使用這個

SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE); 
     String prefName = myPrefs.getString(MY_NAME, 0); 
     String wallPaper = myPrefs.getString(MY_WALLPAPER, null); 
0

它看起來像你可以做一些與此類似:Counting Chars in EditText Changed Listener

然後,一旦你已經檢測到文本已更改,您可以將其保存到您的SharedPreferences

或者,如果您只想在用戶離開/進入應用程序時堅持,那麼您可以覆蓋活動的onPause()方法以保存到您的SharedPreferences。只需使用<EditText>.getText()即可獲取輸入的字符串,然後保存該字符串。覆蓋onResume(),然後使用<EditText>.setText(<String from SharedPreference>)在進入您的應用程序後進行恢復。

我假設你知道如何使用SharedPreferences,但讓我知道如果你不知道。

+0

此代碼工作得很好保存到這個preference這樣

SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE); SharedPreferences.Editor prefsEditor = myPrefs.edit(); prefsEditor.putString(MY_NAME, edittext.getText().toString()); prefsEditor.putString(MY_WALLPAPER, "f664.PNG"); prefsEditor.commit(); 

2.Now第二次,你會得到通過。 – user1579664 2012-08-11 11:07:13

0

當用戶使用OnFocusChangeListener從EditText框中移除焦點時,此代碼將保留數據;

EditText userInput = (EditText)findViewById(R.id.ID_HERE); 
SharedPreferences pref = this.getPreferences(this.MODE_PRIVATE); 

String data_key = "data"; 

View.OnFocusChangeListener persistData = new View.OnFocusChangeListener(){ 

    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     // TODO Auto-generated method stub 
     if(!hasFocus){ 
      EditText e = (EditText)v; 
      SharedPreferences.Editor edit = pref.edit(); 
      edit.putString(data_key,e.getText().toString()); 
      edit.commit(); 
     } 
    } 

}; 

userInput.setOnFocusChangeListener(persistData); 
相關問題