Reputation: 4831
In my code, ontouch listener of a button is fired twice. please find below the code. I am using Google API 2.2.
Code in java file ....
submit_button = (Button)findViewById(R.id.submit);
submit_button .setOnTouchListener(new View.OnTouchListener()
{
public boolean onTouch(View arg0, MotionEvent arg1) {
int action=0;
if(action == MotionEvent.ACTION_DOWN)
{
startActivity(new Intent(First_Activity.this, Second_Activity.class));
finish();
}
return true;
}
});
Please help me on solving this issue.
Upvotes: 8
Views: 7504
Reputation: 171
It fires twice because there is a down event and an up event.
The code in the if branch always executes since the action is set to 0 (which, incidentally, is the value of MotionEvent.ACTION_DOWN).
int action=0;
if(action == MotionEvent.ACTION_DOWN)
Maybe you meant to write the following code instead?
if(arg1.getAction() == MotionEvent.ACTION_DOWN)
But you really should use OnClickListener as Waqas suggested.
Upvotes: 17
Reputation: 27455
Did you attach the listener two to view elements? Before reacting on the event check from which view it comes using the View arg0
parameter.
Upvotes: 1
Reputation: 68187
instead of using onTouchListener, you should use onClickListener for buttons.
submit_button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startActivity(new Intent(First_Activity.this, Second_Activity.class));
finish();
}
});
Upvotes: 9