2012-04-02 4 views
1

내가 선택한 항목이 변경 될 때 환경 설정 요약을 변경하는 기능을 추가하려면 ListPreference을 확장하려고합니다. 지금까지 클래스를 확장하고 생성자를 제공하며 몇 가지 옵션을 설정했습니다. 내가 InflateException와 XML에이 클래스, 응용 프로그램 충돌을 참조하는 작업을 실행하면 :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 

는 자바 : 당신으로

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

: 여기

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이다 볼 수 있습니다. 내가 한 것은 수업을 연장하는 것뿐입니다. ListPreference에 기능을 추가하려면 확장하는 것 이상의 작업을 수행해야합니까? 의미, 다른 함수를 재정의하거나 다른 함수를 호출해야합니까? XML 컨텐트 뷰를 설정해야합니까? 원본 XML을 사용하고 싶습니다. 선택한 엔터티가 변경 될 때 요약을 업데이트하려고합니다.

+1

당신의 XML을 보여주십시오. 정규화 된 패키지 이름없이이 'HighQualityPreference'를 참조하십시오. 그러나이 속성을 포함해야합니다. 그렇지 않으면 인플레이레이터가 해당 패키지 이름을 찾을 수 없습니다. –

+0

@AleksG 위의 XML을 추가했습니다. 아니요, 정규화 된 구성 요소 이름을 포함하지 않았습니다. – skyler

+1

구성 요소의 정규 패키지를 추가하십시오 (예 :'com.your.package.HighQualityPreference' android : key = "..."... />' –

답변

2

보십시오 구성 요소의 완전한 패키지를 추가, 즉

<com.your.package.HighQualityPreference android:key="..." ... /> 
관련 문제