カスタムの背景を持つボタンでこの問題が発生し、これに選択された状態を使用することになりました。その状態は、すべてのビューで使用できます。
これを使用するには、カスタム ボタンの背景を状態リストとして定義する必要があります。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="false" android:state_focused="false"
android:state_pressed="false"><bitmap ... /></item>
<item android:state_selected="true"><bitmap ... /></item>
<item android:state_focused="true"><bitmap ... /></item>
<item android:state_pressed="true"><bitmap ... /></item>
</selector>
次に、その背景を使用するには/res/drawable/button_bg.xml
、レイアウトファイルにあるとしましょう。次を使用します。
...
<Button android:background="@drawable/button_bg" ... />
...
コードでは、onClick リスナーで (非) 選択状態に切り替えることができます。
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setSelected(true);
// normal click action here
}
});
アクティブ化された状態は、意図した意味によりよく一致しますが、Android 3.x 以降でのみ使用できます。