将不会从preferences更新 [英] won't update from Preferences

查看:147
本文介绍了将不会从preferences更新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

它更新的时候我编辑或只需单击preferences屏幕任意输入和比我首先要躲前面的活动确定前的活动。它给了我零按钮和preferences XML我给右键,还设置defaultValue。

所以..场景:我去preferences屏幕上,单击编辑按钮上的文字,只要点击确定,回去后,其0按钮,隐藏前的活动,回到前面的活动,是孤单的正确的价值。

我希望我列入所有必需的部件。

 私人共享preferences preFS;
    私人字符串移动电话号码;
    私有静态最终诠释MENU_ preFERENCES = Menu.FIRST;
    私有静态最终诠释SHOW_ preFERENCES = 1;    私人无效updateFrom preferences(){
       移动电话号码= prefs.getString(移动电话号码,0);
    }    私人无效refreshAplication(){
       button.setText(移动电话号码);
    }    @覆盖
       公共无效的onCreate(捆绑savedInstanceState){
       super.onCreate(savedInstanceState);
       的setContentView(R.layout.main);
       preFS = preferenceManager.getDefaultShared preferences(本);
       updateFrom preferences();
       refreshAplication();
    }    @覆盖
    公共布尔onOptionsItemSelected(菜单项项){
      开关(item.getItemId()){
        案例(MENU_ preFERENCES):{
            意图I =新意图(这一点,preferences.class);
            startActivityForResult(I,SHOW_ preFERENCES);
            返回true;
        }
       }
       返回false;
    }    @覆盖
    公共无效的onActivityResult(INT申请code,INT结果code,意图数据){
      super.onActivityResult(要求code,结果code,数据);      如果(要求code == SHOW_ preFERENCES)
      如果(结果code == Activity.RESULT_OK){
        updateFrom preferences();
        refreshAplication();
      }
    }    公共类preferences扩展$ P $ {pferenceActivity
    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
      super.onCreate(savedInstanceState);
      加preferencesFromResource(R.xml.user preferences);
      }
    }


解决方案

呼叫 refreshAplication(); onResume()

It updates front activity when I edit or just click ok on any input in preferences screen and than i must first hide front activity. It gives me zero on button and in preferences xml i gave right key and also defaultValue.

So .. scenario: i go to preferences screen, click to edit button text, just click ok, go back, its "0" on button, hide front activity, go back to front activity and theres is the right value.

I hope i included all necessary parts.

    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);
      }   
    }

解决方案

Call refreshAplication(); in onResume().

这篇关于将不会从preferences更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆