我有一个 PreferenceActivity 类来处理我的应用程序中首选项的获取和设置。但是我有一个“主”Activity 类,它在启动时调用 Web 服务,并且基于 Web 服务的返回值,需要更新其中一个首选项。
如果不抛出 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 类做到这一点,我只需要了解如何做到这一点。
谢谢!