gridview项上的OnTouchListener

时间:2017-02-14 15:45:55

标签: android gridview

我有一个带有字符的gridview 10x10。我正在制作一个字母汤,我需要在用户按下que屏幕时获取元素,按照拖动并获得up事件。

我正在测试在gridview的适配器上设置一个OnTouchListener,但我只得到Down事件而不是所有这些事件。

此代码位于适配器

中的 getView 方法内
textView.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            Log.d("ADAPTER", motionEvent.toString());
            return false;
        }
    });

如果我在gridview上分配了事件,我必须使用coords获取元素的位置,并且字符不正确。

1 个答案:

答案 0 :(得分:1)

您可能需要将侦听器添加到gridView

gridView.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent me) {

        int action = me.getActionMasked();
        float currentXPosition = me.getX();
        float currentYPosition = me.getY();
        int position = gridView.pointToPosition((int) currentXPosition, (int) currentYPosition);
                    if (action == MotionEvent.ACTION_DOWN) {
                        // Key was pressed here
                    }

        return true;
}