如何修复R.xml.preferences错误?

时间:2014-05-21 16:52:51

标签: java android xml

我在preferences.xml文件夹中创建了几个首选项,但是当我尝试在我的Settings.java类中设置它时,我在addPreferencesFromRecource(R.xml.preferences)的xml下面得到一个红色下划线。我找到了这个话题R.xml.preferences cannot be found?,其中有人遇到与我一样的问题,并建议包含导入(在我的情况下是导入com.example.anneholmes.R)并检查首选项的位置。 XML。 我的preferences.xml位于res / xml文件夹中,我进行了导入;但是,它并没有解决我的错误。我该如何解决这个错误?

这是Settings.java代码

package com.example.anneholmes;

import android.app.Activity;
import com.example.anneholmes.R; //did import
import android.os.Bundle;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceFragment;

public class Settings extends Activity {
//code
        .
        .
        .

}
public static class PrefsFragment extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences); // error 
        Preference submitPref = (Preference)findPreference("submitPref");
        submitPref.setOnPreferenceClickListener(new    OnPreferenceClickListener(){

                   //code
                      .
                      .
                      .

这是来自preferences.xml的XML

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="PERSONAL INFORMATION">
    <EditTextPreference
        android:key="firstName"
        android:title="First Name"
        android:summary="Enter your First Name"
        android:dialogTitle="Enter your first name">

    </EditTextPreference>

    <EditTextPreference
        android:key="lastName"
        android:title="Last Name"
        android:summary="Enter your Last Name"
        android:dialogTitle="Enter your last name">

    </EditTextPreference>

    <EditTextPreference
        android:key="email"
        android:title="Email address"
        android:summary="Enter your email address"
        android:dialogTitle="Enter your email address">

    </EditTextPreference>

    </PreferenceCategory>

    <PreferenceCategory android:title="Colors">
        <ListPreference 
            android:entries="@array/colors"
            android:entryValues="@array/colorSelected"
            android:key="textcolor"
            android:summary="Choose the Font Color"
            android:title="Foreground Color"/>
        <ListPreference 
            android:entries="@array/colors"
            android:entryValues="@array/colorSelected"
            android:key="color"
            android:title="Background Color"
            android:summary="Choose the Background Color"/>
    </PreferenceCategory>

        <Preference 
            android:title="Save this Information"
            android:key="submitPref"/>


   </PreferenceScreen>

2 个答案:

答案 0 :(得分:2)

您永远不会关闭<PreferenceScreen>标记,因此此处的XML无效。

因为它无效,所以它不会编译,因此不会有一个int放入你试图从Java代码中引用的R中。

这就是它说它不存在的原因。它在任何地方都没有得到很好的解释,所以我以前必须自己找到它。

答案 1 :(得分:0)

将此行添加到清单文件:

<activity android:name=".preferences"></activity>