我试图在触摸 gridview 时选择项目,但无法使用 onClick 因为它会启动另一个活动。我想要实现的是能够在 gridview 中移动项目,因为我找不到一种方法来做到这一点,所以我正在尝试找到一种方法..
所以是的.. 有没有办法获取哪个项目已被“感动”,我尝试使用矩形,但它没有正常工作..
(我可以详细说明..我不能为此使用 onItemClick ..)
任何帮助都会很棒,谢谢! :)
I'm trying to get the item selected when i touch a gridview, i cant use the onClick as that starts another activity. What I'm trying to achieve is to be able to move items in a gridview around and since i cant find a way of doing it I'm trying to make a way..
So yeah.. Is there a way to get which item has been 'touched', I've tried using a Rect and it hasn't worked properly..
(Can i just elaborate.. i Cant use the onItemClick for this..)
Any help would be great, Thank you! :)
发布评论
评论(2)
获取被“触摸”的项目
To get the item that was 'touched'
如果 Glendon Trullinger 使用 onLongClickListener 的建议对您来说还不够,请尝试 GridView#pointToPosition(int x, int y),您可以从
View.OnTouchListener
,使用MotionEvent
的 x 和 y 坐标。通过该位置,您可以使用 获取该位置的子视图这个答案,和/或者您可以使用 AdapterView#getItemAtPosition(int)If Glendon Trullinger's suggestion of using onLongClickListener isn't sufficient for you, try GridView#pointToPosition(int x, int y), which you can call from a
View.OnTouchListener
, using theMotionEvent
's x and y coordinates. With that position, you can get the child view at that position using this answer, and/or you can get the adapter item itself using AdapterView#getItemAtPosition(int)