0

我想为学习目的创建简单的应用程序。您输入文本,应用程序使用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 
    android:id="@+id/savedtext"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

但是shared preferences文本没有显示在TextView. 谁能告诉我我的代码有什么问题?

4

4 回答 4

2

您已将其保存到偏好设置"Text1",但正在阅读"Text"

更改它们以匹配,例如:

SavePreferences("Text", editText.getText().toString());
于 2013-05-01T08:56:59.867 回答
1

利用

SharedPreferences sharedPreferences = getPreferences("Pref_Name",MODE_PRIVATE);

保存和获取时密钥也不同。

String stringSaved = sharedPreferences.getString("Text", "");

在两个地方都使用 Text1

于 2013-05-01T08:55:40.870 回答
1

改变这个:

String stringSaved = sharedPreferences.getString("Text", "");

对此:

   String stringSaved = sharedPreferences.getString("Text1", "");

有关更多信息,您可以查看此http://developer.android.com/reference/android/content/SharedPreferences.html

于 2013-05-01T08:57:21.110 回答
1

替换以下行

String stringSaved = sharedPreferences.getString("Text", "");

String stringSaved = sharedPreferences.getString("Text1", "");

有关我的教程中的 sharedPreferences 的更多信息。

于 2013-05-01T08:57:55.907 回答