GridView控件onItemClickListener永远不会被调用 [英] GridView onItemClickListener never gets invoked

查看:136
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆