GridView控件onItemClickListener永远不会被调用 [英] GridView onItemClickListener never gets invoked
本文介绍了GridView控件onItemClickListener永远不会被调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个的GridView
自定义查看
在里面,这是一个按钮
和的TextView
。我定义了 setOnItemClickListener
但它看起来像它永远不会被调用,请参阅以下code撕成小块。
的GridView =(GridView控件)findViewById(R.id.main_gridview);
gridview.setAdapter(新GridAdapter(本));
gridview.setOnItemClickListener(新OnItemClickListener(){
@覆盖
公共无效onItemClick(适配器视图<>母公司视图中查看,
INT位置,长的id){
Toast.makeText(getApplicationContext(),gadsfadsf,
Toast.LENGTH_SHORT).show();
Log.d(主,onItemClick);
}
});
解决方案
我有同样的问题。虽然我还没有想通了,为什么它永远不会被调用,我可以提出一个解决办法。
而不是设置onClickListener对你的GridView的,此按钮,您GridAdapter内设置它,你的getView()方法中。
这是为我工作!
I have a GridView
with custom View
in it, which is a Button
and a TextView
. I defined the setOnItemClickListener
but it looks like it never invoked, please see peaces of code below.
gridview = (GridView) findViewById(R.id.main_gridview);
gridview.setAdapter(new GridAdapter(this));
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getApplicationContext(), "gadsfadsf",
Toast.LENGTH_SHORT).show();
Log.d("Main", "onItemClick");
}
});
解决方案
I had the same issue. While I've not yet figured out why it never gets invoked, I can propose a workaround.
Instead of setting the onClickListener on your GridView, set it on the Button itself inside your GridAdapter, inside your getView() method.
That worked for me!
这篇关于GridView控件onItemClickListener永远不会被调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文