代码:
public class Preferences extends PreferenceActivity {
public static final String PREF_AUTO_UPDATE = "PREF_AUTO_UPDATE";
public static final String PREF_MIN_MAG = "PREF_MIN_MAG";
public static final String PREF_UPDATE_FREQ = "PREF_UPDATE_FREQ";
SharedPreferences prefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Context context = getApplicationContext();
addPreferencesFromResource(R.xml.userprefs);
}
每次切换到偏好设置活动时,都会出现运行时错误,导致我的应用崩溃。我得到的痕迹:
引起:java.lang.ClassCastException:java.lang.Integer
在做了一些调试之后,我发现注释掉行addPreferencesFromResource
会使应用程序崩溃,但(显然)不会加载任何UI。我正在复制这个例子几乎排成一行教科书,无法弄清楚我的生活中缺少什么。
答案 0 :(得分:0)
检查您的资源类型。这可能是问题所在。
答案 1 :(得分:0)
我正在玩这些东西并且碰到了同样的东西。事实证明我正在做一个putInt但是然后定义首选项的xml文件有一个TextEditPreference连接相关的键。据我所知,TextEditPreference坚持通过putString / getString(duh)与sharedpreferences文件进行交互,而我在玩游戏时所做的putInt在app-preferences.xml(/ data / data /。 ./shared_prefs/ ..),每次调用addPreferencesFromResource时都会终止首选项活动。不确定这是不是你的情况,但我认为一旦你发布你的userprefs,人们可以提供帮助,并且还要注意你是否在代码中使用了TextEditPreference键上的putInt,或者是我(错误地)做的事情。