2015-02-07 3 views
0

Я пытаюсь отобразить координаты точки, которую пользователь нажимает на экран, используя Toast. он не работает в этом классе по некоторым причинам, может ли кто-нибудь пролить свет на то, почему? @Override public boolean onTouchEvent (событие MotionEvent) { // motionevent обнаруживает движение от пользователя float x; x = event.getX(); float y; y = event.getY();Сообщение Toast после MotionEvent

 switch (event.getAction()) 
     { 
     case MotionEvent.ACTION_UP: 
      //touch_up(x, y); 
      invalidate(); 
      float Cox = event.getX(); 
      float Coy = event.getY(); 
      String text = "You clicked at x = " + Cox+ "and y =" + Coy; 
      //AlertDialog.Builder builder = new AlertDialog.Builder(); 
      Toast toast = Toast.makeText(DrawView.this, text, 10); 
      toast.show(); 

      break; 
     } 
     return true; 
+0

Что делает ваш Invalidate способ сделать? Может быть, переместите это ниже всего. Также попробуйте getRawX и getRawY вместо getX и getY – MobileMon

+0

спасибо за ваш отзыв, однако он не ответил на мои вопросы о том, почему тост не работает. Метод invalidate обрабатывает представление макета. –

+0

Что значит, что это не работает? Это не показывает? – MobileMon

ответ

0

Установить переменную класса называется:

Context mContext; 

В OnCreate метод:

mContext = this; 

Передайте эту переменную mContext в Toast конструктору вместо DrawView.this

+0

nope, все еще не работает. , когда я объявляю mContext = this; он допускает ошибку для несовместимых типов –