我有一个 imageview - 它具有两个属性 - 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 上,第二次单击执行操作。我不确定为什么会这样。
第一次单击应该请求焦点并执行操作。
任何有关如何做到这一点的帮助将不胜感激。