我有一个Preference
启用同步适配器的设备,并且在切换时需要一段时间才能真正完成它的工作。因此,当用户单击 时Preference
,我会启动一个 AsyncTask 来完成这项工作。同时,我禁用了Preference
复选框并将复选框替换为不确定的ProgressBar
. 我通过一个涉及CheckBoxPreference
覆盖ProgressBar
在CheckBox
. 呸。
该android:widgetLayout
属性似乎正是为此而设计的。我应该可以android:widgetLayout
用来指定默认的替换CheckBox
。所述替换将实现Checkable
并使用 a在 a和 aViewSwitcher
之间适当切换。 CheckBox
ProgressBar
唯一的问题是CheckBoxPreference
,在其onBindView()
方法中,似乎忽略了可能android:widgetLayout
使用的可能性。它明确地这样做:
View checkboxView = view.findViewById(com.android.internal.R.id.checkbox);
这实际上使得无法交换自定义Checkable
通孔android:widgetLayout
并使其实际工作。
这是一个疏忽/错误CheckBoxPreference
,还是我误解了android:widgetLayout
?有没有一种更清洁的方式来做我想做的事情?