2

選択時に別のドローアブルを表示する必要があるドローアブル状態リストセレクターがあります。

インターフェース付きのドローアブルを使用するViewクラスを拡張しましたがCheckable、これは問題なく機能します。

ただし、でフィルタリングするだけでstate_checkableは、falseの値の画像が表示されます。これは、私の実装に何か問題があることを意味していると思います。

<item android:drawable="@drawable/button_6_default" android:state_checkable="false" />
<item android:drawable="@drawable/button_disable_default" android:state_checkable="true" />

どのようにして適切に仕事をしますかstate_checkablestate_checked

4

2 に答える 2

2

onCreateDrawableStateメソッドの実際のコードを必要とする可能性のある他の人のために前の答えを拡張します。これはこのライブラリから抽出されます:https ://github.com/ManuelPeinado/MultiChoiceAdapter

private static final int[] CHECKED_STATE_SET = {
  android.R.attr.state_checked
};

@Override
protected int[] onCreateDrawableState(int extraSpace) {
  final int[] drawableState = super.onCreateDrawableState(extraSpace + 2);
  if (isChecked) {
       mergeDrawableStates(drawableState, CHECKED_STATE_SET);
  }
  return drawableState;
}
于 2013-10-13T00:27:45.567 に答える
1

私はそれを考え出した。onCreateDrawableState追加した追加属性の数を増やしてsuperを呼び出した後にビューがチェックされる場合は、state_checkedattrを実装して追加する必要があります。申し訳ありませんが、ここにコードはもうありません。

于 2012-02-20T19:13:35.587 に答える