2012-04-11 31 views
9

Bir Android uygulaması için bazı basit tercihler oluşturmaya çalışıyorum, ancak şu hatayı geçemiyorum: "xml çözümlenemiyor veya bir alan değil." Temizledim, yeniledim, tutulmaya başladım ve jig dansı yaptım - ama hatayı sallayamıyorum. Neyi yanlış yapıyorum?R.xml.preferences bulunamadı?

preferences.xml dosyası:

<?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> 

java sınıfı dosyası: Herhangi bir yardım için

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 ?? 
    } 
} 

teşekkürler.

+4

Tercihler dosyanız nerede bulunur? Olması gereken: /res/xml/preferences.xml'. –

+6

ve import com.myapp.prototype.R; –

+0

Anlaşıldı, teşekkürler. – gcl1

cevap

16

Sanırım bir ithalatı kaçırdınız (Vincent'ın yorumlarda söylediği gibi). Eklemek gerekir:

import com.myapp.prototype.R; 
hata da kodunuzda koyarsanız görünür

: R çözülene çünkü kafa karıştırıcı ama tabii (eğer XML dosyası tanımlanmış bir özellik vardır

import android.R; 

, iyi R değil!).

+1

Evet, bunu Vincent'ın cevabından sonra yorumlarla çözdüm. Sadece yanlış dizininde preferences.xml vardı (res/xml yerine res/layout altında). Takip için teşekkürler. – gcl1

+0

Aynı sorunu ele alarak, içe aktarma ifadesini düzeltmek ve ayar dosyasını yerine koymak http://developer.android.com/guide/topics/ui/settings.html#DefiningPrefs adresine göre hile yaptı. –

4

res/ dizininin içinde res/xml adlı bir klasörün olması ve içinde .xml dosyanızın olması gerekir.

0

Gelecek ziyaretçiler için: Aynı problemi yaşadım. Ve lynda.com'dan geçtiğim videolardan biri, XML'inin bir tane yoksa bir dosya adı olan .xml ile oluşturulacağını söyledi. Ama bu, açıklandığı şekilde oluyor. "RES" klasörünün altında "XML" adlı bir klasörü el ile oluşturmak ve bu xml dosyasını altına sürüklemek zorunda kaldım ve hata kaybolacaktı.

0

Sorunum vardı çünkü başka bir projeden xml kopyaladım/yapıştırdım. Projede xml dosyasını File => new => Android xml ile oluşturun ve sonra xml kodunu diğer projeden oluşturduğunuz xml'ye yapıştırın.

1

Bu eski bir sorudur, ancak cevabım gelecekteki görüntüleyenler için faydalı olabilir. Ben aynı sorunu vardı ve ben yanlış bir R sınıfını ithal çünkü öyleydi:

import your.full.package.name.R 

Ve tabii ki olması gerekir: Kendi projenin oluşturulan Ar sınıfını içe zorunda

import android.R 

projenizdeki res/xml/preferences.xml dosyası.