Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 找不到PreferenceScreen类_Java_Android_Xml_Sharedpreferences - Fatal编程技术网

Java 找不到PreferenceScreen类

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

我在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="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);
   }
}