Java 找不到PreferenceScreen类
我在preferences.xml中有这个Java 找不到PreferenceScreen类,java,android,xml,sharedpreferences,Java,Android,Xml,Sharedpreferences,我在preferences.xml中有这个 <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <CheckBoxPreference android:key="displayNotification" android:title="Displa
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference
android:key="displayNotification"
android:title="Display notification"
/>
<ListPreference
android:entries="@array/languages"
android:key="language"
/>
</PreferenceScreen>
我已经在舱单上这样声明了
<activity android:name="com.tellthetime.PreferencesActivity" />
已经有人问过了,但没有人回答。正如Heiko Rupp在该线程中指出的,android正在包
android.view
中查找类,但该类在android.preferences
中,这真的让我不知所措。你弄糊涂了,你试图将首选项定义设置为布局定义。首先为活动设置布局,然后绑定首选项XML:
...
setContentView(R.layout.layout);
addPreferencesFromResource(R.xml.preferences);
...
setContentView不适用于PreferenceScreen,只适用于“addPrerencesFromResource(R.*.yourPreference);”。
yourPreference视图的活动应该继承PreferenceActivity,而不是activity。您不需要
PreferenceActivity
中的setContentView()
方法
public class PreferencesActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
尽管它已被弃用。改为使用。是的,我认为应该这样做,但我认为应该添加它,这样区别就很明显了。2011年7月:
addPreferencesFromResource
被标记为不推荐使用。改用PreferenceFragment
。
...
setContentView(R.layout.layout);
addPreferencesFromResource(R.xml.preferences);
...
public class PreferencesActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}