0

設定画面を実装したい。したがって、基本的に開発者ドキュメントの例に従いました。アクティビティを開始すると、1 つのヘッダーを含むヘッダー リストが表示されます (この部分は機能しているようです)。しかし、このヘッダーをクリックするとすぐに、アクティビティが以下のログでクラッシュしました。

SO と google を検索しましたが、このエラーに関する詳細情報は見つかりませんでした。

私は、 preference_appearance_screen.xmlを 1 つの CheckBoxPreference 項目に短縮しようとしました。XML の 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>

LogCat:

04-30 17:22:01.215: E/AndroidRuntime(16775): FATAL EXCEPTION: 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): at 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:

4

2 に答える 2

2

わかりました、簡単なテスト プロジェクトをセットアップしましたが、エラーを再現できませんでした。Galaxy Nexus で表示され、正常に動作します。これを実行しているデバイスは何ですか?他のデバイス/エミュレーターは試しましたか?

私が見つけた唯一の関連する問題は、このスタイル/テーマ関連の問題で、あちこちでポップアップするようです。カスタマイズしたことはありますか?その場合は、上記のコードをできるだけ「バニラ」として実行してみて、違いが生じるかどうかを確認してください。

于 2012-05-01T06:47:01.763 に答える