2014-01-28 3 views
0

Я пытаюсь получить позицию, когда список затронут так, что при касании в определенной позиции он должен показывать тост.Как получить позицию касания в списке?

Вот мой сенсорный приемник для ListView: -

customListFilter.setOnTouchListener(new View.OnTouchListener() { 

     @Override 
     public boolean onTouch(View arg0, MotionEvent event) { 
      int actionX = (int) event.getX(); 
      int actionY = (int) event.getY(); 
      int extraTapArea = 13; 
      int x = (int) (actionX + extraTapArea); 
      int y = (int) (actionY - extraTapArea); 
      x = getWidth() - x; 

      if(x <= 0){ 
       x += extraTapArea; 
      } 
      if (y <= 0) 
       y = actionY;     

      if ((actionX,actionY).contains(x, y)) { 
       // Show Toast Here 
      } 
      return false; 
     } 
    }); 

Пожалуйста, помогите мне с моей логикой. В принципе, если я коснуться правой или левой стороны в виде списка, но не среднюю часть, она должна показать тост

+2

, пожалуйста, прокомментируйте, если у вас есть причина. –

ответ

1

попробовать что-то вроде следующего:

Display display = getWindowManager().getDefaultDisplay(); 
Point size = new Point(); 
display.getSize(size); 
int width = size.x; 
customListFilter.setOnTouchListener(new View.OnTouchListener() { 

     @Override 
     public boolean onTouch(View arg0, MotionEvent event) { 
      int actionX = (int) event.getX(); 
      int actionY = (int) event.getY(); 

     int middlePoint = width/2 ; 

     if(actionX >middlePoint){ 
      // you are touching the right side 
     }else if (actionX <middlePoint){ 
      // you are touching the left side 
     } 

         return false; 
     } 
    }); 

и дать мне некоторую обратную связь

Надеюсь, это поможет .

+0

Удивительный ответ. Благодарю. Скажите мне, это мой вопрос, что плохо, чтобы получить downvoted? –

+0

его не я, кто сделал downvote, так что я не знаю :) и вас приветствует :) –

Смежные вопросы