0

私はActivity、残りのスペースにいくつか (または 1 つ) の設定項目といくつかのウィジェットを表示する を作成しようとしています。私はこれを行う方法を理解するのに苦労しています。

/res/xml/preferences_1.xml : _

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <CheckBoxPreference 
        android:key="test" 
        android:title="test" 
        android:defaultValue="false" />
</PreferenceScreen>

この単一の設定を編集するための UI を含めたいアクティビティのレイアウト: /res/layout/test.xml :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <fragment
        android:name="com.test.something.TestActivity$PrefsFragment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <View ... stuff ... />
</LinearLayout>

そしてActivity

public class TestActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    public static class PrefsFragment extends PreferenceFragment {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            // Load the preferences from XML resource
            this.addPreferencesFromResource(R.xml.preference_login);
        };
    }
}

これは、私が達成しようとしていることを説明する必要があります。<fragment>ショーPreferenceFragmentとその下にまだ(またはいくつかの)ウィジェットがあります。

残念ながら、これは私が望んでいたようには機能しません。代わりに、アクティビティを開くときにスローします。スタック トレースの関連部分は次のようです。

E/AndroidRuntime(12584): java.lang.RuntimeException: アクティビティ ComponentInfo を開始できません {com.test.something/com.test.something.TestActivity}: android.view.InflateException: バイナリ XML ファイルの行 #7: クラスの膨張エラー断片

誰かがこれがどのように行われるかを教えてもらえますか?

4

1 に答える 1

2

ああ!スタックトレースの後半には、実際にはもっと役立つメッセージがありました。に属性<fragment>がありませんでした。android:id

于 2012-05-19T13:15:03.190 に答える