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을 사용하고 싶습니다. 선택한 엔터티가 변경 될 때 요약을 업데이트하려고합니다.
당신의 XML을 보여주십시오. 정규화 된 패키지 이름없이이 'HighQualityPreference'를 참조하십시오. 그러나이 속성을 포함해야합니다. 그렇지 않으면 인플레이레이터가 해당 패키지 이름을 찾을 수 없습니다. –
@AleksG 위의 XML을 추가했습니다. 아니요, 정규화 된 구성 요소 이름을 포함하지 않았습니다. – skyler
구성 요소의 정규 패키지를 추가하십시오 (예 :'com.your.package.HighQualityPreference' android : key = "..."... />' –