文件“Android”中的“不支持类型”PreferenceActivity

文件“Android”中的“不支持类型”PreferenceActivity,android,preferencescreen,Android,Preferencescreen,我还是Android编程新手,我就是解决不了这个问题。 我正在创建一个首选项屏幕,但在运行应用程序时,出现以下错误: Error:Execution failed for task ':app:mergeDebugResources'. > Unsupported type 'PreferenceScreen' in file C:\Users\Fidel Sebastián\AndroidStudioProjects\Asteroides\app\src\main\res\values\

我还是Android编程新手,我就是解决不了这个问题。 我正在创建一个首选项屏幕,但在运行应用程序时,出现以下错误:

Error:Execution failed for task ':app:mergeDebugResources'.
> Unsupported type 'PreferenceScreen' in file C:\Users\Fidel Sebastián\AndroidStudioProjects\Asteroides\app\src\main\res\values\preferencias.xml
这是XML文件:

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:key="preferencias_principal" >
        <CheckBoxPreference
            android:key="music"
            android:title="Start music"
            android:summary="Select for background music"/>
        <ListPreference
            android:key="graphics"
            android:title="Graphics type"
            android:summary="Choose your graphics type"
            android:entries="@array/graphicstype"
            android:entryValues="@array/graphicsTypeValues"
            android:defaultValue="1"/>
        <EditTextPreference
            android:key="fragments"
            android:title="Number of fragments"
            android:summary="Select for meteor fragments"
            android:defaultValue="3"/>
    </PreferenceScreen>
</resources>
我在网上到处搜索,但仍然找不到答案。任何帮助都将不胜感激。提前谢谢。

扔掉标签。首选项屏幕不是资源。应将其定义为XML中的顶级对象,如所示:

扔掉标签。首选项屏幕不是资源。应将其定义为XML中的顶级对象,如所示:


谢谢,但现在我有另一个错误:必须声明Element PreferenceScreen。这意味着什么?将首选项文件从res/values中移出,并移到res/xml文件夹中。您还需要将正确的文件传递到addPreferencesFromResource,@mexicanguimany,非常感谢!我非常感谢你的帮助。我真是太感谢你了!我知道我有点离题了,但最后一个问题是:你知道一个好的YouTube频道教Android编程吗?说到学习,我更喜欢视觉。再次感谢!“老实说,我没有,”墨西坎吉说。我主要使用安卓网站上的在线文本和代码示例。书籍是很好的资源,但不是基于视频的。我也听说过马里兰大学的一些好事情,但我自己没有接受。哦,我明白了,没有问题。我稍后会检查书本和课程。再次,非常感谢eldarerathis,再见!谢谢,但现在我有另一个错误:必须声明Element PreferenceScreen。这意味着什么?将首选项文件从res/values中移出,并移到res/xml文件夹中。您还需要将正确的文件传递到addPreferencesFromResource,@mexicanguimany,非常感谢!我非常感谢你的帮助。我真是太感谢你了!我知道我有点离题了,但最后一个问题是:你知道一个好的YouTube频道教Android编程吗?说到学习,我更喜欢视觉。再次感谢!“老实说,我没有,”墨西坎吉说。我主要使用安卓网站上的在线文本和代码示例。书籍是很好的资源,但不是基于视频的。我也听说过马里兰大学的一些好事情,但我自己没有接受。哦,我明白了,没有问题。我稍后会检查书本和课程。再次,非常感谢eldarerathis,再见!
package com.example.fidelsebastin.asteroides;


import android.os.Bundle;
import android.preference.PreferenceFragment;

public class Preferences extends PreferenceFragment {
    @Override
   public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.arrays);
    }
}
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:key="preferencias_principal" >
    <CheckBoxPreference
        android:key="music"
        android:title="Start music"
        android:summary="Select for background music"/>
    <ListPreference
        android:key="graphics"
        android:title="Graphics type"
        android:summary="Choose your graphics type"
        android:entries="@array/graphicstype"
        android:entryValues="@array/graphicsTypeValues"
        android:defaultValue="1"/>
    <EditTextPreference
        android:key="fragments"
        android:title="Number of fragments"
        android:summary="Select for meteor fragments"
        android:defaultValue="3"/>
</PreferenceScreen>
public class Preferences extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferencias);
    }
}