2014-02-28 110 views
0

我的活動包含一個EditText這需要名用戶作爲字符串INOUT,然後我試圖通過SharedPreferences保存這一點,所以,當我的活動被再次打開,我可以再打我的字符串,並設置作爲我的EditText中的提示。SharedPreferences不保存並返回字符串

我的代碼: -

SharedPreferences prefs = getSharedPreferences("Key",0); 

     final EditText editname = (EditText)findViewById(R.id.editText1); 
    editname.setGravity(Gravity.CENTER); 
    nameofuser = prefs.getString("name", "Your Name!"); 
    editname.setHint(nameofuser); 

    editname.setOnEditorActionListener(new OnEditorActionListener() 
    { 


     public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) 
     { 
      if(arg1==EditorInfo.IME_ACTION_DONE) 
      { 
       nameofuser = editname.getText().toString(); 
        Editor e=prefs.edit(); 
        e.putString("name", nameofuser); 
         e.commit();    
        editname.setCursorVisible(false); 
      } 
      return false; 
     } 
    }); 

這裏是nameofuser字符串類型類變量

現在我想: -

  • 在活動檢查的起點,如果有任何字符串保存爲nameofuser,如果是職位,作爲的EditText暗示。
  • 中如果EditText上,按類型的人做任何事的程序之後,該字符串保存爲nameofuser和sharedpreferences。
  • 關閉和重新打開該應用程序,如果存在nameofuser設置之後如在的EditText暗示。

什麼我得到: - 一切工作正常,但每當我重新打開該程序我得到的EditText即沒有顯示空白那裏。

回答

0

嘗試這種方式,

if(arg1==EditorInfo.IME_ACTION_DONE) 
{ 
    nameofuser = editname.getText().toString(); 
    SharedPreferences.Editor e=prefs.edit(); // modify at this line 
    e.putString("name", nameofuser); 
    e.commit();    
    editname.setCursorVisible(false); 
} 
+0

它不工作,即時通訊思想是不是因爲一些問題的EditText或sharedpreferences之一。 – Mohit

+0

它給的任何錯誤? – Kedarnath

+0

沒有任何錯誤,每次我重新啓動應用程序時,edittext中都沒有顯示任何提示。 – Mohit

1

我希望這將有助於你

private void SavePreferences(String key, String value) { 
    SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putString(key, value); 
    editor.commit(); 
} 

private void deletePreferences(String key) { 

    SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.remove(key); 
    editor.commit(); 
} 

private void clearAllPreferences() { 
    SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.clear(); 
    editor.commit(); 
} 
private void showPreferences(String key){ 
    SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); 
    String savedPref = sharedPreferences.getString(key, ""); 
    mOutputView.setText(savedPref); 
    } 
+1

不要只張貼鏈接的答案。鏈接壞了,這不是一個論壇,宣傳自己的網站,它提供透明的溶液 –

+0

這是我的博客,它不會破 – RajeshVijayakumar

+0

很好的例子,謝謝。 – Mohit