2011-06-20 85 views
4

我试图让我选择的项目,当我触摸gridview,我不能使用onClick作为开始另一项活动。我试图实现的是能够移动项目在GridView周围,因为我无法找到一种方法做到这一点我试图让方式..GridView获取项目触摸

所以是的..有没有办法获得该项目已被“感动”,我已经使用矩形审判,它已经无法正常工作..

(可我只是阐述..我不能使用onItemClick这个..)

任何帮助将是伟大的,谢谢! :)

+1

我的项目获取适配器项目本身有点困惑。您想确定哪个项目已被点击以便您可以移动它,但是您不能使用由于新的活动启动而点击项目时调用的方法?如果您需要Android主屏幕上使用的功能,您可以查看onLongClickListener()。 –

+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); 
    } 
} 
+0

简单而优雅! – faizal

+2

这不简单也不优雅。 gridView.getChildAt(position)将返回null,因为GridView重用它的元素,就像ListView对行所做的那样。 – bogdan