GridView 在触摸时获取项目

2022-01-18 00:00:00 grid android java

我试图在触摸 gridview 时选择项目,但我无法使用 onClick,因为它会启动另一个活动.我想要实现的是能够在网格视图中移动项目,因为我找不到这样做的方法,所以我正在尝试一种方法..

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..

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

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..

(我能详细说明一下吗..我不能为此使用 onItemClick..)

(Can i just elaborate.. i Cant use the onItemClick for this..)

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

Any help would be great, Thank you! :)

推荐答案

如果 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 the MotionEvent'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)

相关文章