我有简单的editText,用户在其中输入数字或字符串。当用户再次进入应用程序时,我想保留该数字或字符串。
问问题
5042 次
3 回答
1
1.先保存成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.现在第二次你会通过每当你使用这个
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
String prefName = myPrefs.getString(MY_NAME, 0);
String wallPaper = myPrefs.getString(MY_WALLPAPER, null);
于 2012-08-06T15:40:24.977 回答
0
看起来你可以做类似的事情:Counting Chars in EditText Changed Listener
然后,一旦您检测到文本已更改,您可以将其保存到您的SharedPreferences
.
或者,如果您只想在用户离开/进入应用程序时保留,那么您可以覆盖onPause()
Activity 的方法以保存到您的SharedPreferences
. 只需使用<EditText>.getText()
输入字符串然后保存即可。在进入您的应用程序时覆盖onResume()
并使用它来恢复它。<EditText>.setText(<String from SharedPreference>)
我假设您知道如何使用 SharedPreferences,但如果您不知道,请告诉我。
于 2012-08-06T15:38:52.127 回答
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);
于 2012-08-06T15:40:24.200 回答