Android - 如何从另一个活动中设置偏好

问题描述:

我有一个PreferenceActivity类,用于处理在我的应用程序中获取和设置偏好设置。但是我有一个“main”Activity类,它在启动时调用Web服务,并且基于Web服务的返回值,需要更新其中一个首选项。Android - 如何从另一个活动中设置偏好

我似乎无法得到这个工作,没有抛出一个NullPointerException错误。

下面是主要的活动代码:

protected void onPostCreate(Bundle savedInstanceState) 
{ 

    if(getWebServiceResult.equals("FALSE")) 
    { 
     //do stuff 
    } 
    else 
    { 
     myPreferences prefs = new myPreferences();    
     prefs.updateMyChoice("TRUE"); 
    } 
} 

这里是从抛出错误的PreferenceActivity类的代码:

public void updateMyChoice(String newText) 
{ 
    if(subscriber_opt_in == null) //this is coming up null 
    { 
     subscriber_opt_in = (EditTextPreference) findPreference("opt_in"); //error here 
    } 
    subscriber_opt_in.setText(newText); 
    subscriber_opt_in.setSummary(newText); 
} 

我需要知道如何正确地更新这个偏好。如果在主Activity类中有办法做到这一点,那更好,但如果我必须通过PreferenceActivity类来完成,我只需要了解如何去做。

谢谢!

+0

什么是myPreferences? – JRaymond 2012-04-23 21:41:35

+0

了解如何使用SharedPreferences。您可以轻松地从应用程序中的任何活动读取/写入它们 – kmb64 2012-04-23 21:53:39

+0

myPreferences是PreferenceActivity类的名称。 – JMax2012 2012-04-24 11:47:47

+0

最优秀。这就是诀窍!感谢您的参考。 – JMax2012 2012-04-26 17:26:06