SharedPreferences不适用于android

时间:2014-05-30 04:30:35

标签: android sharedpreferences

我有一个sharedPreferences对象和SharedPreferencesEdit对象,但没有保存任何东西

public void getPreferences(){
      SharedPreferences sp = getSharedPreferences("MyData", Context.MODE_PRIVATE);
      SharedPreferences.Editor spEditor = sp.edit();

      spEditor.putString("us1_Name", us1_Name.getText().toString());
      spEditor.commit();
  }

  public void setPreferences(){
      SharedPreferences sp = getSharedPreferences("MyData", Context.MODE_PRIVATE);

      us1_Name.setText(sp.getString("us1_Name", "DEFAULT"));


  }

我在onStop和onResume调用时调用此方法,但对我来说不起作用。

2 个答案:

答案 0 :(得分:4)

您只需要将preference方法从getPreferences()更改为setPreferences()

public void getPreferences(){
  SharedPreferences sp = getSharedPreferences("MyData", Context.MODE_PRIVATE);
  us1_Name.setText(sp.getString("us1_Name", "DEFAULT"));
 }

public void setPreferences(){
   SharedPreferences sp = getSharedPreferences("MyData", Context.MODE_PRIVATE);
   SharedPreferences.Editor spEditor = sp.edit();
   spEditor.putString("us1_Name", us1_Name.getText().toString());
   spEditor.commit();
 }

getPreferences()中,您需要使用

保存preferences
sp.getString("us1_Name", "DEFAULT")

在您的setPreferences()中,您需要使用

保存preferences
 SharedPreferences.Editor spEditor = sp.edit();
 spEditor.putString("us1_Name", us1_Name.getText().toString());
 spEditor.commit();

答案 1 :(得分:0)

首先是那个

1。)不要在onStop()中执行任何操作,如sharedPreferance编辑/数据库编辑;方法

因为它只是暂时调用,而且只是针对活动做了一些小操作

所以请更改它并在onPause();

中执行