同期アダプターを有効にPreference
する があり、切り替えたときに実際に機能するまでに時間がかかります。したがって、ユーザーが をクリックするPreference
と、AsyncTask をスピンオフして作業を行います。それまでの間、 を無効にPreference
して、チェック ボックスを indeterminate に置き換えますProgressBar
。の上にCheckBoxPreference
オーバーレイする のサブクラスを含むハックを介して、これらすべてを機能させています。うん。ProgressBar
CheckBox
このandroid:widgetLayout
属性は、まさにこのために設計されているようです。android:widgetLayout
デフォルトの代わりを指定するために使用できるはずですCheckBox
。この置換は、 aと aを適切に切り替えるCheckable
ために a を実装して使用します。 ViewSwitcher
CheckBox
ProgressBar
唯一の問題はCheckBoxPreference
、そのonBindView()
方法では、 が使用される可能性を無視しているように見えることandroid:widgetLayout
です。明示的にこれを行います:
View checkboxView = view.findViewById(com.android.internal.R.id.checkbox);
Checkable
これにより、カスタムビアを交換しandroid:widgetLayout
て実際に機能させることが事実上不可能になります。
これは見落とし/バグですかCheckBoxPreference
、それとも誤解android:widgetLayout
ですか? 私がやろうとしていることを行うためのよりクリーンな方法はありますか?