2013-06-24 21 views
5

Chcę dodać wiadomość w oknie dialogowym ListPreference, więc pomyślałem o użyciu atrybutu android: dialogMessage.Wyświetl android: dialogMessage w oknie dialogowym ListPreference

Jednak po ustawieniu tego atrybutu pozycje listy (ustawione za pomocą androida: wpisy i android: entryValues) nie są już wyświetlane w oknie dialogowym (Wydaje się, że jest to znany błąd, ponieważ mogłem o nim przeczytać w innym miejscu).

Wygląda na to, że może zajść konieczność utworzenia specjalnej niestandardowej listyPreferencji, aby wyświetlić zarówno wpisy w oknie dialogowym, jak i w liście.

Uważam, że tworzenie niestandardowej klasy MyListPreference, która zostałaby nieznacznie zmodyfikowana do tego celu. Zastąpiłbym onCreateDialogView(), aby wprowadzić zmiany. Jednak jestem trochę niepewny o najczystszych zmian, aby jak widzę dwie możliwości:

alternatywna 1- utworzyć układ niestandardowy XML chciałbym skopiować domyślny układ xml dla okna ListPreference i dodać TextView . W onCreateDialogView() Chciałbym nadmuchać ten układ niestandardowy.

alternatywna 2- zmodyfikować widok na bieżąco W onCreateDialogView() nazwałbym super.onCreateDialogView() i dynamicznie dodać TextView do widoku wraca.

Pytanie: Co zaleca się robić? Jeśli alternatywa 1 jest najlepsza, gdzie mogę znaleźć domyślny układ XML dla okna dialogowego ListPreference, aby można go było dostosować?

Dziękuję za pomoc

Odpowiedz

1

chciałbym spróbować alternatywnego nr 2 pierwszy. Właśnie opracowuję ogromny ekran ustawień z około 50 ustawieniami i dowiedziałem się, że modyfikacja widoku w trybie onCreateView() preferencji jest dość prosta.

@Override 
protected View onCreateView(ViewGroup parent) { 
    View v = super.onCreateView(parent); 
    ((TextView) v).setText(this.text); 
    return v; 
} 

Założę się, że tak samo jest z oknem dialogowym ListPreference.

Powiązane problemy