2012-04-11 30 views
9

Estoy intentando configurar algunas preferencias simples para una aplicación de Android, pero no puedo superar este error: "xml no se puede resolver o no es un campo". He limpiado, actualizado, reiniciado eclipse y bailé la plantilla, pero no puedo quitar el error. ¿Qué estoy haciendo mal?R.xml.preferences no se puede encontrar?

El archivo preferences.xml:

<?xml version="1.0" encoding="utf-8"?> 

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 

    <PreferenceCategory 
     android:title="Dev options"> 

     <CheckBoxPreference 
      android:key="devtools" 
      android:title="Enable clearing user" 
      android:summary="Enable clearing user" /> 

    </PreferenceCategory> 

</PreferenceScreen> 

El archivo de clase Java:

package com.myapp.prototype; 

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

public class GCPreferencesActivity extends PreferenceFragment { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Load preferences from XML resource 
     addPreferencesFromResource(R.xml.preferences); // error on this line ?? 
    } 
} 

Gracias por cualquier ayuda.

+4

¿Dónde está ubicado su archivo de preferencias? Debería ser: '/res/xml/preferences.xml'. –

+6

e importar com.myapp.prototype.R; –

+0

Entendido, gracias. – gcl1

Respuesta

16

Creo que se ha perdido una importación (como dijo Vincent en los comentarios). se debe añadir:

import com.myapp.prototype.R; 

El error también aparece si se pone en el código:

import android.R; 

que es confuso porque R se resuelve pero no tiene ningún atributo que ha definido en el archivo XML (por supuesto , no es la buena R!).

+1

Sí, resolví esto después de la respuesta de Vincent a través de comentarios. Acabo de tener preferences.xml en el directorio incorrecto (en res/layout en lugar de res/xml). Gracias por el seguimiento. – gcl1

+0

Encontré el mismo problema, solucioné la declaración de importación y coloqué el archivo de configuración en su lugar. El truco está en http://developer.android.com/guide/topics/ui/settings.html#DefiningPrefs. –

4

Debe tener una carpeta dentro de su directorio res/ llamada res/xml y dentro tiene su archivo .xml.

0

Para futuros visitantes: Tuve el mismo problema. Y uno de los videos que pasé por lynda.com dijo que la carpeta XML se creará con un nombre de archivo.xml si no tenemos uno. Pero no pasa de la manera en que fue explicado. Tuve que crear manualmente una carpeta llamada "XML" debajo de la carpeta "RES" y arrastrar ese archivo xml debajo de él y el error desapareció.

0

Tuve el problema porque copié/pegué el xml de otro proyecto. Cree el xml en el proyecto con File => new => Android xml y luego copie y pegue el código xml del otro proyecto al xml que acaba de crear.

1

Esta es una vieja pregunta, pero mi respuesta puede ser útil para los futuros espectadores. Yo tenía el mismo problema, y ​​era porque me había importado una clase R equivocada:

import android.R 

Tienes que importar generada clase I de su propio proyecto:

import your.full.package.name.R 

Y, por supuesto, es necesario tener archivo res/xml/preferences.xml en su proyecto.

Cuestiones relacionadas