Возникла следующая проблема:
Имеется кнопка у которой необходимо обрабатывать два слушателя. Первый это onTouchListener, второй onClickListener. Код слушателя onTouchListener() ниже:
OnTouchListener dragt = new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
FrameLayout.LayoutParams par = (LayoutParams) v.getLayoutParams();
switch(v.getId())
{
case R.id.button1:
{
switch(event.getAction())
{
case MotionEvent.ACTION_MOVE:
{
par.topMargin = (int)event.getRawY() - (v.getHeight());
par.leftMargin = (int)event.getRawX() - (v.getWidth()/2);
par.bottomMargin = (int)event.getRawX() - (v.getWidth()/2);
par.rightMargin = (int)event.getRawX() - (v.getWidth()/2);
v.setLayoutParams(par);
break;
}
case MotionEvent.ACTION_UP:
{
par.height = 120;
par.width = 120;
par.topMargin = (int)event.getRawY() - (v.getHeight());
par.leftMargin = (int)event.getRawX() - (v.getWidth()/2);
par.bottomMargin = (int)event.getRawX() - (v.getWidth()/2);
par.rightMargin = (int)event.getRawX() - (v.getWidth()/2);
v.setLayoutParams(par);
break;
}
case MotionEvent.ACTION_DOWN:
{
par.height = 150;
par.width = 150;
v.setLayoutParams(par);
break;
}
}
break;
}
}
return true;
}
};
Мне же необходимо чтобы при обычном клике срабатывал onClick(). Назначал слушателя onClickListener - не работает(то есть онтач срабатывает, а онклик нет), назначал кнопке свойство
android:onClick="knopka"
Далее вызывал в активити:
public void knopka(View v) {
System.out.println("Работай же!!!");
}
Все равно не работает. Как еще сделать не представляю!
Ответ
Как обычно, читаем документацию Returns True if the listener has consumed the event, false otherwise. Таким образом, как нетрудно догадаться, вам нужно возвращать из OnTouchListener.onTouch false, а не true
Комментариев нет:
Отправить комментарий