Intereting Posts
Ошибка соединения Bluetooth "java.io.IOException: чтение не выполнено, сокет может быть закрыт или таймаут, read ret: -1" Как преобразовать цвет rgb в int в java EditText setOnFocusChangeListener для всех EditTexts Какая работа была выполнена для кросс-платформенной мобильной разработки? Как прокрутить вниз в ScrollView при запуске активности Сбой из-за Integer.parseInt Как программно закрыть программу Google Navigation? Как реализовать липкий нижний колонтитул в recyclerview Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени «android: TextAppearance.Material.Widget.Button.Borderless.Colored» Понимание цветов на Android (шесть символов) Canvas .toDataURL () возвращает частично поврежденное изображение Android Studio Не удалось вызвать IncrementalTask.taskAction () для задачи ': project: dexDebug' Как узнать, какая версия приложения установлена ​​программно в android GridView С помощью Custom ArrayAdapter Обратные противоположные цвета

OnTouchListener on Activity никогда не вызывает

Я использовал этот код, но когда я нажимаю на активность во время выполнения, он никогда не попадает в метод OnTouch (). Может ли кто-нибудь вести меня, что я делаю неправильно? Должен ли я установить контекст этого действия? На самом деле я хочу координаты деятельности, при которой пользователь прикасается во время выполнения.

public class TouchTestAppActivity extends Activity implements OnTouchListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.touch); } @Override public boolean onTouch(View arg0, MotionEvent arg1) { // TODO Auto-generated method stub String test = "hello"; } } 

Solutions Collecting From Web of "OnTouchListener on Activity никогда не вызывает"

ОБНОВИТЬ:

Вам нужно сделать это:

  • В вашем файле макета XML вам нужен ID для корневого представления: android:id="@+id/myView"
  • В методе youer onCreate () напишите:

     LinearView v= (LinearView) findViewById(R.id.myView); v.setOnTouchListener(this); 

Предполагая, что ваш корневой вид является LinearView

Вы должны использовать onTouchListener для соответствующих компонентов GUI.

Например:

  public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.touch); TextView someView = (TextView)findViewById(R.id.some_view_from_layout_xml); someView.setOnTouchListener(this); // "this" is the activity which is also OnTouchListener } 

Вы должны добавить слушателя, используя setOnTouchListener() иначе кто даст вызов вашему методу onTouch. Любой прослушиватель работает в любом представлении. Поэтому вам нужно добавить слушателя к представлению, например button.setOnTouchListener(this);

 LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View vi = inflater.inflate(R.layout.yourxml, null); setCOntentView(vi); vi.setOnTouchListener(this); 

В onCreate вам нужно установить представление контента (возможно, нужно расконсировать вторую строку), а затем вам нужно установить OnTouchListener (свою активность) как onTouchListener для представления в вашем приложении.

Предположим, у вас есть представление в вашем макете под названием «MainView»; Это выглядело бы примерно так:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); View view = findViewById(R.id.MainView); view.setOnTouchListener(this); } 

Эта статья имеет хороший пример: http://www.zdnet.com/blog/burnette/how-to-use-multi-touch-in-android-2-part-2-building-the-touch-example/1763