如图,快餐,烧烤这些白色btn是gridview里的item。这个页面生成了多个gridview,我想在点击其中一个btn时候获取btn的text作为参数传递。使用
···
gridView=new MyGridView(FenleiActivity.this);
gridView.setVerticalSpacing(10);
gridView.setHorizontalSpacing(15);
gridView.setNumColumns(3);
hashlist=new ArrayList<HashMap<String,Object>>();
for(int j=0 ;j<Two_classify_list.size();j++){
HashMap<String, Object> map= new HashMap<String, Object>();
map.put("fenlei_btnlist_btn_text", Two_classify_list.get(j));
hashlist.add(map);
}
sAdapter=new SimpleAdapter(this,hashlist,
R.layout.fenlei_btnlist_item,
new String[]{"fenlei_btnlist_btn_text"},new int[]{R.id.fenlei_btnlist_btn_text});
gridView.setAdapter(sAdapter);
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
HashMap<String,String> map=(HashMap<String,String>)gridView.getItemAtPosition(arg2);
String btnText=map.get("fenlei_btnlist_btn_text");
System.out.println("------------------------!!!!!!-------------------"+btnText);
Bundle bundle=new Bundle();
bundle.putString("oneClassify", text);
bundle.putString("twoClassify", btnText);
Intent intent=new Intent(FenleiActivity.this,GoodsShowActivity.class);
intent.putExtras(bundle);
startActivity(intent);
}
});
···
因为不同的gridview中btn的数量是不同的,不知道为什么有时候点的比较靠后的btn时候就提示数组下标越界,还有就是不管我点哪个gridview,只要点的是第几个btn提示的内容是相同的,这意思就是说他不会动态获取点的那个gridview呗,为什么呢
查了一下你以前发的代码,这是那段代码的其中一段吧。
gridview是全局的,你onitemclick的时候,这个gridview表示的是最后一个的gridview,所以不管怎么点,都是最后一个gridview的内容。
改成
增加自定义OnItemClickListener,把gridview存起来。
class MyOnItemClickListener implements OnItemClickListener{
private GridView gv = null;
public MyOnItemClickListener(GridView gv){
this.gv = gv;
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
HashMap<String,String> map=(HashMap<String,String>)gv.getItemAtPosition(arg2); //这里使用存起来的gridview
}
}
使用时`gridView.setOnItemClickListener(new MyOnItemClickListener(gridView));`
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。