Как определить взаимодействие пользователя с сенсорным экраном в Android?

В моей деятельности есть ActionBar,ListView,ContextMenu,Menu.

Я хотел зафиксировать взаимодействие пользователя с моей активностью (это означает, что когда пользователь прикасается к моей активности, я хотел показать тост). Я использую это

@Override
    public void onUserInteraction() 
    {

            Toast.makeText(this, "Hello",Toast.LENGTH_LONG).show();
    }

Этот метод работает на экране, но проблема с этим методом не работает.

Menus,ContextMenu(ListView).

Рабочий сценарий: - 1-Это работает в первый раз, когда я касаюсь экрана в любом месте действия (ActionBar, ListView).

2-После первого нажатия Menus этот метод вызывается, и если Menu связано с действием (если я хочу перейти к следующему действию), он работает нормально, но в том же действии есть Menu REFRESH, я не знаю, почему это метод не вызывается при нажатии на REFRESH.

3- Та же проблема с ContextMenu (появляется после долгого нажатия на ListView)

Я тоже пробовал GestureDetecter.

В Android есть какой-то конкретный метод или что-то еще, который может обнаруживать прикосновение пользователя каждый раз в меню, контекстном меню, списке, на экране или где угодно.

Большое спасибо


person Monty    schedule 04.01.2013    source источник


Ответы (1)


Я думаю, вы можете переопределить dispatchTouchEvent() в своей деятельности, чтобы получить желаемый результат.

что-то вроде этого:

@Override
public boolean dispatchTouchEvent(MotionEvent me){
  //do something
  return super.dispatchTouchEvent(me);
}

см. документацию по действиям. более

Также я думаю, что стоит отметить, что ваших пользователей может раздражать, если вы показываете тост каждый раз, когда они касаются чего-либо на экране.

person FoamyGuy    schedule 04.01.2013