Android, подкласс Предпочтительный класс - PullRequest
1 голос
/ 16 апреля 2011

Я пытаюсь написать приложение для Android Honeycomb, и у меня возникают проблемы с подклассами. Предпочтение: 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 я пытаюсь получить доступ к своему предпочтению с помощью его ключа, но, похоже, не везет, так какпредпочтение никогда не обновляется:

// 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");

Может ли кто-нибудь указать мне, где я могу ошибаться?

1 Ответ

0 голосов
/ 13 мая 2011

Код скопирован прямо из программы или перепечатан?Если он скопирован, то ваш ключ - «int_space_test» в XML и «int_test_space» в коде.В следующем случае следует выдать исключение нулевого указателя, где вы используете intTest.

...