Android共享首选项无法显示

时间:2013-05-01 08:53:07

标签: android sharedpreferences

我想为学习目的创建简单的应用程序。您输入文字,应用会使用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中的T​​extView:

<TextView 
    android:id="@+id/savedtext"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

shared preferences中没有显示TextView文字。谁能告诉我我的代码有什么问题?

4 个答案:

答案 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的更多信息。