前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安卓-无敌解决ListView添加标题头无法正常显示的问题(歪门邪道)

安卓-无敌解决ListView添加标题头无法正常显示的问题(歪门邪道)

作者头像
手撕代码八百里
发布2020-07-29 09:55:24
1.3K0
发布2020-07-29 09:55:24
举报
文章被收录于专栏:猿计划

原因:

在做安卓实验时,用到了ListView来做表格显示数据。由于表头是使用xml布局文件动态实现的。造成了添加好组件后,无法正常显示的情况。浪费了我2小时的时间,终于利用歪门邪道解决了。

重点

首先要知道的是使用listView.addHeaderView(view)添加表头时,如果listView中没有数据的话,是不能显示数据的。

代码语言:javascript
复制
  View view  = LayoutInflater.from(this).inflate(R.layout.user_listview_item_header,null);
        listView.addHeaderView(view);

咋整呢

终于

被逼的不行了,就试着继续往下做。我先利用for循环,随便生成了几条数据,发现可以正常显示了,哈哈哈哈。

代码语言:javascript
复制
 List<User> userInfo = new ArrayList<>();
        System.out.println("查出来了:"+userInfo.size());
        for(int i =0;i<10;i++){
            User s = new User();
            s.setId(i);
            s.setUsername("user"+i);
            userInfo.add(s);
        }

        //获取到集合数据
        List<HashMap<String, Object>> data = new ArrayList<HashMap<String,Object>>();
        for (int i = 0;i<userInfo.size();i++){
            HashMap<String, Object> item = new HashMap<String, Object>();
            User user = userInfo.get(i);
            item.put("item_id", user.getId());
            item.put("item_username", user.getUsername());
            item.put("item_age", user.getAge());
            item.put("item_hight", user.getHeight());
            data.add(item);
        }

        //创建SimpleAdapter适配器将数据绑定到item显示控件上
        SimpleAdapter adapter = new SimpleAdapter(MainActivity.this, data, R.layout.user_listview_item,
                new String[]{"item_id", "item_username", "item_age","item_hight"}, new int[]{R.id.item_id, R.id.item_username, R.id.item_age,R.id.item_hight});
        //实现列表的显示
        listView.setAdapter(adapter);

机动部

激动不

激动不

激动不
激动不

那就封装一下呗,试试

代码语言:javascript
复制
 //开局查询所有的
    public void selectAll(){
        onSelectClick(new View(this));
    }

初始化完表头,然后执行这个方法

代码语言:javascript
复制
  View view  = LayoutInflater.from(this).inflate(R.layout.user_listview_item_header,null);
        listView.addHeaderView(view);
        selectAll();

这种办法应该不是最好的解决办法,如果哪位大神看到了此篇文章,如果您有更好的解决办法,请给小弟留言。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/11/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原因:
  • 重点
  • 咋整呢
  • 终于
  • 机动部
    • 激动不
      • 激动不
  • 那就封装一下呗,试试
  • 初始化完表头,然后执行这个方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档