Mam Preference
, który włącza adapter synchronizacji i po pewnym czasie trwa wykonywanie pracy po włączeniu. W związku z tym, gdy użytkownik klika Preference
, uruchamiam AsyncTask, aby wykonać pracę. W międzyczasie wyłączę opcję Preference
i zastępuję pole wyboru nieokreślonym numerem ProgressBar
. Wszystko to działa przez włamanie obejmujące podklasę CheckBoxPreference
, która nakłada się na ProgressBar
na wierzchu CheckBox
. Fuj.Dostosowywanie CheckBoxPreference przez android: widgetLayout
Atrybut android:widgetLayout
wydaje się być zaprojektowany specjalnie do tego. Powinienem móc użyć android:widgetLayout
, aby określić zamiennik domyślnego CheckBox
. Wymieniona wymiana może zaimplementować Checkable
i użyć ViewSwitcher
, aby odpowiednio przełączać między CheckBox
i .
Jedynym problemem jest to, że CheckBoxPreference
w metodzie onBindView()
, wydaje się ignorować możliwość użycia android:widgetLayout
. To wyraźnie to robi:
View checkboxView = view.findViewById(com.android.internal.R.id.checkbox);
To skutecznie uniemożliwia zamienić w zwyczaju Checkable
poprzez android:widgetLayout
i to rzeczywiście działa.
Czy jest to niedopatrzenie/błąd w CheckBoxPreference
, czy też źle zrozumiałem android:widgetLayout
? Czy istnieje jakiś zamierzony sposób na wykonanie tego, co próbuję zrobić?
Czy kiedykolwiek znaleźć rozwiązanie tego? Właśnie to trafiłem. –
Niezupełnie. Utknąłem z [moja podklasa] (https://github.com/loganj/foursquared/blob/master/main/src/com/joelapenna/foursquared/preferences/ProgressCheckBoxPreference.java) z "CheckBoxPreference". – loganj