2014-02-28 84 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