android在gridview中获取点击项目的位置

正如我们所知,使用android网格视图,我们可以做到以下几点,并获得通知,当项目被点击:

gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Toast.makeText(PopularCapitActivity.this, "" + position, Toast.LENGTH_SHORT).show(); } }); 

我们也知道,如果网格中的单元格包含一个可点击的项目,说一个button,上面不会被解雇。

所以目前我有一个网格视图,每个单元格都有自己的button,所以现在当用户点击button时,它将有自己的行动基于单元格button驻留在,我的问题是,我如何访问单元格的位置在button处理程序?

谢谢

Solutions Collecting From Web of "android在gridview中获取点击项目的位置"

假设你正在为GridVIew使用一个自定义的适配器,在getView方法中,你可以简单地添加一个标签到Button对象,该对象包含传入getView的位置:

 button.setTag(new Integer(position)); 

然后,在onClickListener方法中,传入的视图(button)可以执行:

 Integer position = (Integer)view.getTag(); 

然后从那里处理位置值。

编辑:看来最好的做法是做:

 button.setTag(Integer.valueOf(position)); 

而不是使用Integer构造函数。

 gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String a = String.valueOf(position); Toast.makeText(getApplicationContext(), a, Toast.LENGTH_SHORT).show(); } });