GridView获取项目

时间:2011-06-20 22:55:43

标签: java android grid

当我触摸gridview时,我正在尝试选择项目,我无法使用onClick,因为它启动了另一个活动。我想要实现的是能够在gridview中移动项目,因为我无法找到一种方法来实现它我正试图想办法......

所以是的..有没有办法让'触摸'哪个项目,我尝试过使用Rect而且它没有正常工作..

(我可以详细说明..我不能使用onItemClick这个..)

任何帮助都会很棒,谢谢! :)

2 个答案:

答案 0 :(得分:19)

获取“触摸”的项目

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

            int action = me.getActionMasked();  // MotionEvent types such as ACTION_UP, ACTION_DOWN
            float currentXPosition = me.getX();
            float currentYPosition = me.getY();
            int position = gridView.pointToPosition((int) currentXPosition, (int) currentYPosition);

            // Access text in the cell, or the object itself
            String s = (String) gridView.getItemAtPosition(position);
            TextView tv = (TextView) gridView.getChildAt(position);
    }
}

答案 1 :(得分:6)

如果Glendon Trullinger关于使用onLongClickListener的建议不适合您,请尝试GridView#pointToPosition(int x, int y),您可以使用View.OnTouchListener的x和y坐标从MotionEvent调用。使用该位置,您可以使用this answer在该位置获取子视图,和/或您可以使用AdapterView#getItemAtPosition(int)获取适配器项目