2012-12-28 8 views
5

जब मैं एक्सएमएल से स्विच एक वरीयताओं लेआउट फ़ाइल के लिए जीयूआई के लिए मैं निम्नलिखित त्रुटि मिलती है:ग्रहण एंड्रॉयड त्रुटि जीयूआई एक्सएमएल का उपयोग करने जा

अपवाद प्रदान करने के दौरान उठाए गए: com.android.layoutlib.bridge.MockView ढाला नहीं जा सकता android.view.ViewGroup विंडो में अपवाद विवरण लॉग इन हैं> दिखाएँ व्यू> त्रुटि लॉग निम्नलिखित कक्षाएं नहीं मिलीं: - वरीयता श्रेणी (फिक्स बिल्ड पथ, एक्सएमएल संपादित करें) - वरीयता स्क्रीन (फिक्स बिल्ड पथ, एक्सएमएल संपादित करें)

मेरी एक्सएमएल फ़ाइल इस तरह दिखती है:

<?xml version="1.0" encoding="UTF-8"?> 
<PreferenceScreen 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <PreferenceCategory 
    android:title="Activation"> 
    <CheckBoxPreference 
     android:title="Title1" 
     android:defaultValue="false" 
     android:key="checkbox1"> 
    </CheckBoxPreference> 
    </PreferenceCategory> 

    <PreferenceCategory 
    android:title="Option1"> 
    <PreferenceScreen 
     android:title="Set Option"> 
    <CheckBoxPreference 
     android:title="ENABLE OPTION" 
     android:defaultValue="false" 
     android:summary="text" 
     android:key="checkboxOption1"> 
    </CheckBoxPreference> 
    <CheckBoxPreference 
     android:title="DISPLAY OPTIONS" 
     android:defaultValue="false" 
     android:summary="text" 
     android:key="checkboxDisplay1"> 
    </CheckBoxPreference> 
    <EditTextPreference 
     android:title="OPTION2" 
     android:name="Option2" 
     android:summary="text" 
     android:defaultValue="1" 
     android:key="editOption2"> 
    </EditTextPreference> 
    <CheckBoxPreference 
     android:title="OPTION3" 
     android:defaultValue="false" 
     android:summary="text" 
     android:key="checkboxOption3"> 
    </CheckBoxPreference> 
    </PreferenceScreen> 
    </PreferenceCategory> 

    <PreferenceCategory 
    android:title="Option4"> 
    <PreferenceScreen 
     android:title="Set Option4"> 
    <CheckBoxPreference 
     android:title="OPTION4" 
     android:defaultValue="false" 
     android:summary="" 
     android:key="checkboxOption4"> 
    </CheckBoxPreference> 
    <CheckBoxPreference 
     android:title="OPTION5" 
     android:defaultValue="false" 
     android:summary="text" 
     android:key="checkboxOption5"> 
    </CheckBoxPreference> 
    <EditTextPreference 
     android:title="OPTION6" 
     android:name="Option6" 
     android:summary="text" 
     android:defaultValue="1" 
     android:key="editOption6"> 
    </EditTextPreference> 
    <EditTextPreference 
     android:title="OPTION7" 
     android:name="Option7" 
     android:summary="text" 
     android:defaultValue="1" 
     android:key="editOption7"> 
    </EditTextPreference> 
    <EditTextPreference 
     android:title="OPTION8" 
     android:name="Option8" 
     android:summary="text" 
     android:defaultValue="1" 
     android:key="editOption8"> 
    </EditTextPreference> 
    </PreferenceScreen> 
    </PreferenceCategory> 

    <PreferenceCategory 
    android:title="OPTION9"> 
    <PreferenceScreen 
     android:title="Option9"> 
    <EditTextPreference 
     android:title="Option9" 
     android:name="Option9" 
     android:summary="text" 
     android:defaultValue="" 
     android:key="editOption9"> 
    </EditTextPreference> 
    </PreferenceScreen>  
    </PreferenceCategory> 

</PreferenceScreen> 

किसी भी सहायता बहुत सराहना की जाएगी

+0

मुझे एक ही समस्या है। –

उत्तर

4

क्योंकि मैं एक सामान्य गतिविधि की तरह वरीयता सूची में व्यवहार किया जाता है कि मैं इस समस्या थी। यह वास्तव में पूरी तरह से अलग है। सबसे पहले, आपको एक्सएमएल फ़ाइल को res/layout से res/xml तक ले जाना होगा (ग्रहण में, आपको मैन्युअल रूप से यह फ़ोल्डर बनाना होगा)।

import android.os.Bundle; 
import android.preference.PreferenceActivity; 

public class Settings extends PreferenceActivity { //NOT activity! 

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

     // Initialize the preference screen defined in /res/xml/preference.xml 
     addPreferencesFromResource(R.xml.preferences); //NOT setContentView 
    } 

} 

आप एपीआई स्तर के लिए एक चेतावनी> = 11 addPreferencesFromResource के बारे में समाप्त की जा रही मिलेगा: आप भी अलग जावा कोड का उपयोग करने के लिए है। ऐसा इसलिए है क्योंकि एंड्रॉइड चाहता है कि आप टुकड़ों ("वरीयताओं") के आधार पर वरीयता स्क्रीन पर स्विच करें, जो कि थोड़ा अधिक जटिल है। एक उदाहरण here है।

+0

धन्यवाद 1 "इसे जांच लेंगे! चीयर्स – ctaylor