Настройка CheckBoxPreference через android: widgetLayout

У меня есть Предпочтение , которое включает адаптер синхронизации и требует времени, чтобы фактически выполнить свою работу при переключении.Следовательно, когда пользователь щелкает предпочтение , я отключаю AsyncTask для выполнения работы. А пока я отключаю Preference и заменяю флажок неопределенным ProgressBar . У меня все это работает с помощью хака, включающего подкласс CheckBoxPreference , который накладывает ProgressBar поверх CheckBox . Фу.

Атрибут android: widgetLayout кажется, что он предназначен именно для этого. Я должен иметь возможность использовать android: widgetLayout , чтобы указать замену по умолчанию CheckBox . Упомянутая замена будет реализовывать Checkable и использовать ViewSwitcher для надлежащего переключения между CheckBox и ProgressBar .

Единственная проблема заключается в том, что CheckBoxPreference в своем методе onBindView () , похоже, игнорирует возможность использования android: widgetLayout . Он явно делает следующее:

View checkboxView = view.findViewById(com.android.internal.R.id.checkbox);

Это фактически делает невозможным замену пользовательского Checkable через android: widgetLayout и заставить его работать.

Это недосмотр / ошибка в CheckBoxPreference , или я неправильно понял android: widgetLayout ? Есть ли способ очистки, предназначенный для того, что я пытаюсь сделать?

9
задан loganj 1 September 2010 в 12:54
поделиться

1 ответ

android:widgetLayout – это правая часть предпочтения.В CheckBoxPreference виджетLayout является флажком. Если вы возьмете базовое предпочтение и поместите ViewSwitcher в widgetLayout, он должен работать

0
ответ дан 4 December 2019 в 20:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: