我想实现一个偏好屏幕。所以我基本上遵循了开发者文档中的示例。当我开始活动时,我看到标题列表,有一个标题(这部分似乎有效)。但是,一旦我单击此标题,活动就会因以下日志而崩溃。
我搜索了 SO 和 google,但找不到有关此错误的任何进一步信息。
我试图将preference_appearance_screen.xml缩短为一个CheckBoxPreference 项。XML Line 18 上的错误仍然相同。所以我猜这个文件中找不到错误。
我的活动课:
public class TrainerPreferenceActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.preference_headers, target);
}
public static class AppearancePrefFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference_appearance_screen);
}
}
}
preference_headers.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<preference-headers
xmlns:android="http://schemas.android.com/apk/res/android">
<header android:fragment=".TrainerPreferenceActivity$AppearancePrefFragment"
android:title="Appearance"
android:summary="An example of some preferences." />
</preference-headers>
preference_appearance_screen.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="@string/pref_app_cat_theme">
</PreferenceCategory>
<PreferenceCategory
android:title="@string/pref_app_cat_background">
<CheckBoxPreference
android:key="@string/pref_app_bg_iscustom_key"
android:title="@string/pref_app_bg_iscustom_title"
android:summary="An example of some preferences."/>
<CheckBoxPreference
android:key="@string/pref_app_bg_hascolor_key"
android:title="@string/pref_app_bg_hascolor_title"
android:summary="An example of some preferences."/>
<CheckBoxPreference
android:key="@string/pref_app_bg_hasimage_key"
android:title="@string/pref_app_bg_hasimage_title"
android:summary="An example of some preferences."/>
</PreferenceCategory>
<PreferenceCategory
android:title="@string/pref_app_cat_behavior">
<CheckBoxPreference
android:key="@string/pref_app_orientationisenabled_key"
android:title="@string/pref_app_orientationisenabled_title"
android:summary="An example of some preferences."/>
<CheckBoxPreference
android:key="@string/pref_app_gestureisenabled_key"
android:title="@string/pref_app_gestureisenabled_title"
android:summary="An example of some preferences."/>
</PreferenceCategory>
</PreferenceScreen>
日志猫:
04-30 17:22:01.215: E/AndroidRuntime(16775): 致命异常: main 04-30 17:22:01.215: E/AndroidRuntime(16775): java.lang.RuntimeException: Binary XML file line #18: You必须提供 layout_width 属性。04-30 17:22:01.215: E/AndroidRuntime(16775): 在 android.content.res.TypedArray.getLayoutDimension(TypedArray.java:491) 04-30 17:22:01.215: E/AndroidRuntime(16775): 在android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:5318) 04-30 17:22:01.215: E/AndroidRuntime(16775): 在 android.view.ViewGroup$LayoutParams.(ViewGroup.java:5271) 04- 30 17:22:01.215: E/AndroidRuntime(16775): 在 android.widget.AbsListView$LayoutParams.(AbsListView.java:5718) 04-30 17:22:01.215: E/AndroidRuntime(16775): 在 android.widget .AbsListView.generateLayoutParams(AbsListView.java:5355) 04-30 17:22:01.215: