2012-04-02 72 views
1

我正在擴展ListPreference以添加功能,以便在選擇條目更改時更改首選項摘要。到目前爲止,我只擴展了這個類,提供了構造函數,並設置了一些選項。當我運行一個引用這個類在XML的應用程序崩潰與InflateException活動:InflateException extends android.preference.ListPreference

E/AndroidRuntime(1542): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.grooveshark.android.radio/com.grooveshark.android.radio.activity.SettingsActivity}: android.view.InflateException: Binary XML file line #88: Error inflating class HighQualityPreference 
E/AndroidRuntime(1542): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1768) 
E/AndroidRuntime(1542): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784) 
E/AndroidRuntime(1542): at android.app.ActivityThread.access$1500(ActivityThread.java:123) 
E/AndroidRuntime(1542): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939) 
E/AndroidRuntime(1542): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(1542): at android.os.Looper.loop(Looper.java:130) 
E/AndroidRuntime(1542): at android.app.ActivityThread.main(ActivityThread.java:3835) 
E/AndroidRuntime(1542): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(1542): at java.lang.reflect.Method.invoke(Method.java:507) 
E/AndroidRuntime(1542): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 
E/AndroidRuntime(1542): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
E/AndroidRuntime(1542): at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime(1542): Caused by: android.view.InflateException: Binary XML file line #88: Error inflating class HighQualityPreference 

這裏是在Java:

public class HighQualityPreference extends ListPreference 
{ 
    public HighQualityPreference(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
     // TODO Auto-generated constructor stub 

     setEntries(R.array.high_quality_options); 
     setEntryValues(R.array.high_quality_option_values); 

     setSummary("Six squirrels while on a WiFi connection"); 
    } 

    public HighQualityPreference(Context context) 
    { 
     super(context); 
    } 

} 

這裏的XML:

 <HighQualityPreference android:key="@string/prefs_high_quality_option" 
      android:persistent="true" /> 

正如你可以看到,我所做的一切都是擴展課程。要將功能添加到ListPreference,我需要做更多的事情嗎?這意味着,我是否需要重寫其他函數或調用其他函數?我是否需要設置XML內容視圖?我確實想使用原始的XML,我只想在選擇的實體更改時更新摘要。

+1

請出示您的XML。我懷疑你在沒有完整的包名的情況下提到這個'HighQualityPreference',但是你需要包含它,否則充氣機將無法找到它。 – 2012-04-02 18:10:09

+0

@AleksG我在上面添加了XML。不,我沒有包含完全限定的組件名稱。 – skyler 2012-04-02 18:23:52

+1

嘗試爲組件添加完全限定的包,即'' – 2012-04-02 18:39:34

回答

2

嘗試添加完全合格的封裝組件,即

<com.your.package.HighQualityPreference android:key="..." ... />