java - Pressing multiple buttons at same time not detected -
i must catch in android project, if 2 buttons pressed or not. have created ontouchlistener , implemented ontouch(). however, first pressed button detected, when press 2 buttons @ 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.: phone multitouch, i've checked.
try android:splitmotionevents="true" on layout contains buttons.
explaination: android buttons not designed touched @ same time. 1 of them consume touch event , layout container not call ontouch event of other button.
as alternative create custom view handles click detection logic both buttons.
Comments
Post a Comment