Как получить ViewID на TouchUp Event - PullRequest
0 голосов
/ 01 декабря 2011

Я реализую перетаскивание одного текстового представления в другое текстовое представление. Я создал OnTouchListener и применил к обоим моим TextViews

Я написал функцию OnTouch следующим образом

public boolean onTouch(View v, MotionEvent e) 
    {
        switch(e.getAction())
        {
            case MotionEvent.ACTION_DOWN:                        
                Log.d("Down",v.getId()+"");
                break;

            case MotionEvent.ACTION_MOVE:                        
                 Log.d("Move",v.getId()+"");
                 break;

            case MotionEvent.ACTION_UP:                       
                 Log.d("Up",v.getId()+"");
                 break;
        }

        return false;
    }

Я сталкиваюсь с проблемой во всех трех случаях, она возвращает мне идентификатор TextView, при котором в первый раз происходит событие касания. Я хочу получить идентификаторы других TextViews Например, он просто дает мне идентификатор события «tv1». И снова выдает мне «tv1» для события Move и Up Event (несмотря на то, что моя позиция изменяется на другой TextView, идентификатор которого - tv2)

Как я могу получить идентификатор TextView, в котором произошло событие Touch Up

1 Ответ

1 голос
/ 01 декабря 2011

По логике вещей, вы не должны ожидать события tv2.потому что touchListener будет прослушивать, как только вы прикоснетесь к этому представлению, затем повторно вызывать, пока не произойдет событие up.

поэтому, в моем понимании, обработайте касание tv2 путем вычисления координат x, y единственным способом

...