не будет обновляться из настроек - PullRequest
0 голосов
/ 21 января 2012

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

Итак .. сценарий: я иду на экран настроек, нажимаю, чтобы редактировать текст кнопки, просто нажимаю ОК, возвращаюсь, его0 "на кнопке, скрыть фронтальную активность, вернуться к передней активности, и это правильное значение.

Я надеюсь, что я включил все необходимые части.

    private SharedPreferences prefs;
    private String mobileNumber;
    private static final int MENU_PREFERENCES = Menu.FIRST;
    private static final int SHOW_PREFERENCES = 1;

    private void updateFromPreferences() {
       mobileNumber = prefs.getString("mobileNumber", "0");
    }

    private void refreshAplication(){
       button.setText(mobileNumber);
    }

    @Override
       public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       prefs = PreferenceManager.getDefaultSharedPreferences(this);
       updateFromPreferences();
       refreshAplication();
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
      switch (item.getItemId()) {
        case (MENU_PREFERENCES): {
            Intent i = new Intent(this, Preferences.class);
            startActivityForResult(i, SHOW_PREFERENCES);
            return true;
        }
       }
       return false;
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);

      if (requestCode == SHOW_PREFERENCES)
      if (resultCode == Activity.RESULT_OK) {
        updateFromPreferences();
        refreshAplication();
      } 
    }

    public class Preferences extends PreferenceActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      addPreferencesFromResource(R.xml.userpreferences);
      }   
    }

Ответы [ 2 ]

1 голос
/ 21 января 2012

Вы должны следовать этому:

пример

0 голосов
/ 22 января 2012

Звоните refreshAplication(); в onResume().

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