Проблема SharedPreference в Android - PullRequest
1 голос
/ 15 августа 2011
public class WordDisplay extends Activity {

private int level;      
private int group;      
private int set;        

private WordDisplay mContext=this;

private int l;
private int g;
private int s;

SharedPreferences preferences;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.wordset);
    set_Word_Display_Event();
    loadPreferences();

          }
protected void loadPreferences() {
 preferences = PreferenceManager.getDefaultSharedPreferences(this);
    // preferences = getSharedPreferences("one", Context.MODE_PRIVATE);

     l= preferences.getInt("Level", 0);
     g=preferences.getInt("Group", 0);
     s= preferences.getInt("Set", 0);
    // Log.d("lll"," - "+preferences.getInt("level",0));

}

    @Override
protected void onStop() {
    super.onStop();
    savePreferences(this.level,this.group,this.set);
 }

protected void savePreferences(int level, int group, int set) {
         preferences = PreferenceManager.getDefaultSharedPreferences(this);
        //preferences = getSharedPreferences("one", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();

        editor.putInt("Level", l);
        editor.putInt("Group", g);
        editor.putInt("Set", s);

       editor.commit();

        //return getPreferences(s).getInt("Set", 0);

    }
 }

Здесь мои данные не могут сохраняться должным образом.что не так мой код.пожалуйста, дайте хорошее удобство.Комментарии приведенного выше кода, также проверяют, но не могут повлиять.

Ответы [ 2 ]

1 голос
/ 15 августа 2011

Во-первых, onStop() никогда не может вызываться "может" (см. Жизненный цикл действия), практикой является сохранение ваших данных в методе onPause().

Может быть, попробуйте добавить больше журналов, чтобы увидеть, что происходит?

  • называется onStop()?
  • Какие значения сохранены / загружены?
  • и т.д.
0 голосов
/ 15 августа 2011

Попробуйте с последней строковой константой в вашем классе:

public static final String PREFS_NAME = "MyPreferences";

, а затем всегда используйте функцию-член:

getSharedPreferences(PREFS_NAME, 0);

обычно нет никакой магии.

http://developer.android.com/guide/topics/data/data-storage.html#pref

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...