1

Android Honeycombアプリケーションを作成しようとしていますが、Preferenceのサブクラス化に問題があります:http://developer.android.com/reference/android/preference/Preference.html

タイトルと概要だけでなく、プログレスバーも使用して同様のレイアウトを作成したいと思います。

レイアウトを作成してカスタム設定クラスを追加しましたが、そのインスタンスを取得してアイテムの値を設定できないようです。

カスタムクラスでは設定キーが機能しないようです。

標準のプリファレンスクラスと比較した私のプリファレンス定義は次のとおりです。

               <Preference
                android:key="int_free_storage"
                android:title="Free Space"
                android:summary="free storage value here"/>

            <com.hamid.storageether.SpacePreference
                android:key="int_space_test"
                android:title="Test"
                android:summary="This is my custom preference"/>

次に、私の設定サブクラスは、コンストラクターのレイアウトリソースとしてXMLレイアウトを設定します

setLayoutResource(R.layout.space_pref_layout);

また、setTitleメソッドとsetSummaryメソッドをオーバーライドします。

私のメインのPreferenceActivityでは、キーでPreferenceを取得しようとしますが、設定が更新されないため、運が悪いようです。

// These Two work
Preference intTotal = (Preference)findPreference("int_total_storage");
Preference intFree = (Preference)findPreference("int_free_storage");
           intTotal.setSummary("Standard Preference Summary 1");
           intFree.setSummary("Standard Preference Summary 2");

// My subclass doesn't - It just displays the default text defined in the layout xml.
SpacePreference intTest = (SpacePreference)findPreference("int_test_space");
            intTest.setTitle("Testtttyyy");
            intTest.setSummary("Test Summary");

誰かが私が間違っているかもしれない場所に私を向けてくれませんか?

4

1 に答える 1

0

このコードはプログラムから直接コピーされたものですか、それとも再入力されたものですか?コピーした場合、キーはXMLでは「int_space_test」、コードでは「int_test_space」になります。その場合は、intTestを使用する次の行でnullポインタ例外をスローする必要があります。

于 2011-05-13T12:09:01.310 に答える