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类来完成,我只需要了解如何去做。
谢谢!
您应该使用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
最优秀。这就是诀窍!感谢您的参考。 – JMax2012 2012-04-26 17:26:06
什么是myPreferences? – JRaymond 2012-04-23 21:41:35
了解如何使用SharedPreferences。您可以轻松地从应用程序中的任何活动读取/写入它们 – kmb64 2012-04-23 21:53:39
myPreferences是PreferenceActivity类的名称。 – JMax2012 2012-04-24 11:47:47