onTouch
レイアウトがボタンとして機能するように実装しました。
ボタンを押すと2クリック音が鳴る以外は、すべてうまく機能します。
デバッグしようとしましたが、何が問題なのか理解できませんでした。
onTouch
コードは次のとおりです。
button.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
Log.d(TAG, "onTouch "+event.getAction());
switch (event.getAction())
{
case MotionEvent.ACTION_HOVER_ENTER:
v.setBackgroundResource(R.color.main_menu_buttons_bg_pressed);
break;
case MotionEvent.ACTION_HOVER_EXIT:
v.setBackgroundResource(R.color.background_color);
break;
case MotionEvent.ACTION_DOWN:
v.setBackgroundResource(R.color.main_menu_buttons_bg_pressed);
break;
case MotionEvent.ACTION_UP:
Log.d(TAG, "on click");
v.performClick();
v.setBackgroundResource(R.color.background_color);
break;
default:
// empty
}
return false;
}
});
ご覧のとおり、ログ メッセージを追加しました。通常は次のように出力されます。
onTouch 0
onTouch 2
onTouch 2
onTouch 2
onTouch 2
onTouch 1
on click
それで問題ないはずですが、クリック音が2回聞こえます(正確なタイミングを判断できない場合があります)