我想为学习目的创建简单的应用程序。您输入文字,应用会使用Shared Preferences
保存。在TextView中,我想显示这个保存的文本。
我的代码如下所示:
public class MainActivity extends Activity {
Button button;
EditText editText;
TextView textSaved;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button1);
textSaved = (TextView) findViewById(R.id.savedtext);
editText = ( EditText ) findViewById(R.id.editText1);
LoadPreferences();
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SavePreferences("Text1", editText.getText().toString());
LoadPreferences();
}
});
}
protected void SavePreferences(String string, String string2) {
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(string, string2);
editor.commit();
}
private void LoadPreferences() {
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
String stringSaved = sharedPreferences.getString("Text", "");
textSaved.setText(stringSaved);
}
xml中的TextView:
<TextView
android:id="@+id/savedtext"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
但shared preferences
中没有显示TextView
文字。谁能告诉我我的代码有什么问题?
答案 0 :(得分:2)
您已将其保存到偏好"Text1"
,但正在阅读"Text"
将它们更改为匹配,例如:
SavePreferences("Text", editText.getText().toString());
答案 1 :(得分:1)
使用
SharedPreferences sharedPreferences = getPreferences("Pref_Name",MODE_PRIVATE);
保存和提取时,密钥也不同。
String stringSaved = sharedPreferences.getString("Text", "");
在两个地方使用Text1
答案 2 :(得分:1)
改变这个:
String stringSaved = sharedPreferences.getString("Text", "");
到此:
String stringSaved = sharedPreferences.getString("Text1", "");
有关更多信息,请查看此http://developer.android.com/reference/android/content/SharedPreferences.html
答案 3 :(得分:1)
替换以下行
String stringSaved = sharedPreferences.getString("Text", "");
带
String stringSaved = sharedPreferences.getString("Text1", "");
有关My tutorial的sharedPreferences的更多信息。