SharedPreferences отображаются только после перезапуска активности - PullRequest
0 голосов
/ 15 сентября 2011

Здравствуйте, я начал писать свое первое приложение для Android и попытался использовать SharedPreferences, чтобы иметь возможность хранить некоторые строки.Я могу ввести разные имена и в onStop () я помещаю их в SharedPreferences, и после этого я делаю коммит.Есть ли у кого-нибудь решение, что предпочтения сразу отображаются в следующем задании?Потому что в данный момент я должен переключиться обратно на действие, где я набрал имена, и если я немедленно переключусь обратно на действие, где имена будут показаны, они появляются.

protected void onStop() {
    SharedPreferences.Editor edit = set.edit();
    for(int x=0;x<counterM;x++){
            edit.putString("playerM"+x, playersMale.get(x));
        }
    for(int x=0;x<counterF;x++){
            edit.putString("playerF"+x, playersFemale.get(x));
        }
    edit.putInt("counter", counterF + counterM);
    edit.commit();
    super.onStop();

}

и вот onCreate() где я загружаю имя ...

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub

    super.onCreate(savedInstanceState);
    set = this.getSharedPreferences("MY_COUNT",0);
    this.setContentView(R.layout.decisionscreen);
    Random r = new Random();
    int i = set.getInt("counter",1000);
    int x = r.nextInt(i);
    name = set.getString("playerM"+x, "no Players found");
    TextView t = (TextView)findViewById(R.id.nameView);
    t.setText(name+" "+i);
    dareButton();
    truthButton();
}

Я надеюсь, что кто-то может понять, в чем моя проблема.

1 Ответ

0 голосов
/ 15 сентября 2011

Попытайтесь поместить материал редактора общих настроек в переопределение onPause. Он будет вызван, как только вы переключите активность.

...