0

我有一个 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 类做到这一点,我只需要了解如何做到这一点。

谢谢!

4

1 回答 1

0

您应该使用 SharedPreference 类:http: //developer.android.com/reference/android/content/Context.html#getSharedPreferences%28java.lang.String,%20int%29

代码示例和在这里使用:http: //developer.android.com/guide/topics/data/data-storage.html#pref

于 2012-04-23T21:44:12.017 回答