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