私はイメージビューを持っています - それは両方の属性を持っています - focusable と focusableintouchmodeがtrueに設定されています
<ImageView
android:id="@+id/ivMenu01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="true"
android:focusableInTouchMode="true" >
</ImageView>
アクティビティにonFocusChangeListenerを実装しました-
@Override
public void onFocusChange(View v, boolean hasFocus) {
switch (v.getId()) {
case R.id.ivMenu01:
if (hasFocus) {
ivMenu01.setImageBitmap(Utility
.getBitmap("Home_ford_focus.png")); // Focussed image
} else {
ivMenu01.setImageBitmap(Utility.getBitmap("Home_ford.png")); // Normal image
}
break;
default:
break;
}
}
また、onClickListener -
case R.id.ivMenu01:
ivMenu01.requestFocus();
Intent iFord = new Intent(HomeScreen.this, FordHome.class);
startActivity(iFord);
break;
ImageView をクリックすると、最初のクリックで ImageView にフォーカスが移動し、2 回目のクリックでアクションが実行されます。なぜこれが起こっているのかわかりません。
最初のクリックは、アクションを実行するだけでなく、フォーカスを要求する必要があります。
これを行う方法についてのヘルプは非常に高く評価されます。