How can I add a event OnTouchListener
and OnclickListener
at a time in LinearLayout
?
Here is my code but doesn't work
final LinearLayout llTimeTable=(LinearLayout) findViewById(R.id.llSehriIftar);
llTimeTable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, Ramadandate.class);
startActivity(intent);
}
});
llTimeTable.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
llTimeTable.setBackgroundColor(Color.rgb(51, 51, 255));
break;
case MotionEvent.ACTION_UP:
// set color back to default
llTimeTable.setBackgroundColor(Color.rgb(76, 106, 225));
break;
}
return true;
}
});
But when I only use OnclickListener
it works, and when I use only onTouch
method it works, but both at the same time doesn't work.
Since Touch Event is more general, it is called first, then the
onClick
gets fired, however, since your onTouch returns true, the event is consumed andonClick
is never reached.Simply change
onTouch
toreturn false
and your onClick will be called.