android - Listview里面Headerview的问题
PHP中文网
PHP中文网 2017-04-17 16:04:41
[Android讨论组]

Listview添加了Headerview,Headerview里面有一个Gridview显示图片,结果Gridview图片无法响应点击事件?!

        LayoutInflater inflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View Header=inflater.inflate(R.layout.card_view_detail,null);
        mListView.addHeaderView(Header);
        mListView.setAdapter(null);
        
        final MyGridView de_images1=(MyGridView)Header.findViewById(R.id.de_images1);
        
        //判断微博中是否有图片
        if (!StringUtil.isEmpty(list.thumbnail_pic)){
            final ArrayList<String> list2=list.pic_urls;
            de_r14.setVisibility(View.VISIBLE);
            //九宫格显示图片
            int w=0;
            int wh=(SysUtils.getScreenWidth(WeiboDetail.this)- SysUtils.Dp2Px(WeiboDetail.this, 99))/3;
            switch (list2.size()){
                case 1:
                    w=wh;
                    de_images1.setNumColumns(1);
                    break;
                case 2:
                case 4:
                    w=2*wh+ SysUtils.Dp2Px(WeiboDetail.this, 2);
                    de_images1.setNumColumns(2);
                    break;
                case 3:
                case 5:
                case 6:
                    w=wh*3+SysUtils.Dp2Px(WeiboDetail.this, 2)*2;
                    de_images1.setNumColumns(3);
                    break;
                case 7:
                case 8:
                case 9:
                    w=wh*3+SysUtils.Dp2Px(WeiboDetail.this, 2)*2;
                    de_images1.setNumColumns(3);
                    break;
            }
            RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(w, RelativeLayout.LayoutParams.WRAP_CONTENT);
            de_images1.setLayoutParams(lp);
            GridViewAdapter nearByInfoImgsAdapter = new GridViewAdapter(WeiboDetail.this, list2);
            de_images1.setAdapter(nearByInfoImgsAdapter);
            //点击事件,点击没反应
            de_images1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
                    Intent intent = new Intent(WeiboDetail.this, ImagePagerActivity.class);
                    
                    intent.putExtra(ImagePagerActivity.EXTRA_IMAGE_URLS, Tools.getOriginalPicUrls(list2));
                    intent.putExtra(ImagePagerActivity.EXTRA_IMAGE_INDEX, arg2);
                    startActivity(intent);
                }
            });
        }else {
            de_r14.setVisibility(View.GONE);
        }
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
PHPz

你代码都没有,只能说一般套路绑定该控件实现监听事件

天蓬老师

"Headerview里面只有Gridview的Item无法触发click事件,其他的Button都是可以触发click事件的".
把上述Button改成TextView试试。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号