I must catch in an android project, if two buttons are pressed or not. I have created an OnTouchListener
and implemented onTouch()
. However, only the first pressed button is detected, when I press two buttons at same time.
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.game_layout);
mShootButton = (Button) findViewById(R.id.btn_shoot);
mAccelerateButton = (Button) findViewById(R.id.btn_accelarate);
MyTouchListener touchlistener = new MyTouchListener();
MyTouchListener touchlistener2 = new MyTouchListener();
mShootButton.setOnTouchListener(touchlistener);
mAccelerateButton.setOnTouchListener(touchlistener2);
super.onCreate(savedInstanceState);
}
public class MyTouchListener implements OnTouchListener {
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN && v.getId() == R.id.btn_shoot){
setmShootButtonPressed(true);
}
else if(event.getAction() == MotionEvent.ACTION_UP && v.getId() == R.id.btn_shoot){
setmShootButtonPressed(false);
}
if(event.getAction() == MotionEvent.ACTION_DOWN && v.getId() == R.id.btn_accelarate){
setmAccelerateButtonPressed(true);
}
else if(event.getAction() == MotionEvent.ACTION_UP && v.getId() == R.id.btn_accelarate){
setmAccelerateButtonPressed(false);
}
return true;
}
}
N.B.: My phone is multitouch, I've checked.