ListView多条目加载

  • 在listView适配器重写的四个方法的基础上,再手动重写两个方法
  • - 分别是:getViewTypeCount(),确定加载条木有几种数据类型
  • - getItemViewType(int position)第二个是对数据进行判断和分类的
  • - 代碼塊--XlistView适配器
//有几个条目类型
    @Override
    public int getViewTypeCount() {
        return 2;
    }
//判断怎样分辨每个条目的位置
    @Override
    public int getItemViewType(int position) {
        if(position%2==0){
            return 0;
        }else{
            return 1;
        }
    }
  • getView获取控件设置数据中
//得到类型
int type = getItemViewType(position);

/*  switch (type){
                case 0:     //textView
                    break;
                case 1: //
                    break;
                case 2:
                    break;
            }*/


int type = getItemViewType(position);
        switch (type) {
            case 0:
                if (convertView == null) {//不同的布局
                    convertView = View.inflate(context, R.layout.lv_layout, null);

                    holder = new ViewHolder(convertView);
                    convertView.setTag(holder);
                } else {
                    holder = (ViewHolder) convertView.getTag();
                }

                holder.title.setText(data_list.get(position).getNews_title());
                holder.time.setText(data_list.get(position).getNews_summary());
                ImageLoader.getInstance().displayImage(data_list.get(position).getPic_url(), holder.img);

                break;
            case 1:
                if (convertView == null) {//不同的布局
                    convertView = View.inflate(context, R.layout.lv_layout2, null);

                    holder2 = new ViewHolder2(convertView);

                    convertView.setTag(holder2);
                } else {
                    holder2 = (ViewHolder2) convertView.getTag();
                }

                holder2.title_2.setText(data_list.get(position).getNews_title());

                break;

        }

多条目加载时ListView的优化---复用convertView,减少findViewById的次数

时间: 2024-10-31 17:36:41

ListView多条目加载的相关文章

android UI进阶之实现listview的分页加载

 分享了下拉刷新,这是一个用户体验非常好的操作方式.新浪微薄就是使用这种方式的典型. 还有个问题,当用户从网络上读取微薄的时候,如果一下子全部加载用户未读的微薄这将耗费比较长的时间,造成不好的用户体验,同时一屏的内容也不足以显示如此多的内容.这时候,我们就需要用到另一个功能,那就是listview的分页了.通过分页分次加载数据,用户看多少就去加载多少. 通常这也分为两种方式,一种是设置一个按钮,用户点击即加载.另一种是当用户滑动到底部时自动加载.今天我就和大家分享一下这个功能的实现. 首先,

XE7 & FMX 那些年我们一起上过的控件:ListView 之 (2) 加载数据时如何显示进度条

本文介绍一下ListView下如何加载数据.及使用进度条反馈当前进度给用户. 注意: 原创作品,请尊重作者劳动成果,转载请注明出处!!!原文永久固定地址:http://www.cnblogs.com/weii/p/4190694.html 我们先来看看效果图: 进度条需要这样用的,以下为本文参考代码: procedure TForm1.Button2Click(Sender: TObject); begin TThread.CreateAnonymousThread( procedure() v

XE7 & FMX 那些年我们一起上过的控件:ListView 之 (3) 加载数据时如何显示自定义样式

本文介绍一下ListView下如何加载数据.及使用进度条反馈当前进度给用户. 注意: 原创作品,请尊重作者劳动成果,转载请注明出处!!!原文永久固定地址:http://www.cnblogs.com/weii/p/4190719.html 我们先来看看效果图: FMX异常强大,我们可以发挥想像,自定义进度样式,以下为本文参考代码: procedure TForm1.Button3Click(Sender: TObject); var pe: TPie; //扇形作进度 rc: TRoundRec

续说ListView重用之加载图片

最近领养了一直小狗狗,据狗主人说是只阿拉斯加,求大伙见证. 不管他是不是阿拉斯加,我还是得养着,取名"蛋蛋". 继续谈技术. 说到listview里加载图片永远是个说不完的话题. 在listview中如果每个item都有图片需要下载的话,我们就得考虑由于大量图片加载而导致的oom(out of memory)问题. 一个典型的做法是,下载图片的时候看看缓存中有没有该图片,如果缓存中没有,就从sd卡中读取,如果sd卡中还没有,再去服务器下载,下载下来的图片先放在sd卡中,并放到缓存中.如

listview的数据加载

效果如图: listview的数据加载,主要用了Scroll监听来判断其位置是否需要加载信息,如果需要加载信息就先显示加载数据的view,然后进行数据的加载,加载完成后,设加载数据的view不可见,如果加载数据的时候数据位null,这时就移除这个view. listView.addFooterView(moreView); // 添加底部view(上图中的数据加载中...),一定要在setAdapter之前添加,否则会报错. listView.removeFooterView(moreView)

ListView上拉加载下拉刷新

主要用到了这个几个文件,MainActivity是界面的Activity,MyAdapter是ListView的自定义适配,MyListView是自定义带头部LIistView,如果只需要上拉加载就不需要:activity_main.xml是住界面,item.xml是ListView的子布局里面只有一个TextView,listview_footer.xml是listview的加载更多的底部布局,listview_header.xml是listview的头部布局. MainActivity.ja

ListView上拉加载和下拉刷新多种实现方式

ListView上拉加载和下拉刷新多种实现方式 该篇为ListView下拉刷新和上拉加载实现的各种方法大合集.可能在具体的细节逻辑上处理不太到位,但基本上完成逻辑的实现.细节方面,个人可以根据自己的需求进行完善. 该博客将以四种思路来完成下拉刷新和上拉加载 自定义View实现上拉加载和下拉刷新 使用PullToRefresh 实现上拉加载和下拉刷新 使用Ultra-Pull-To-Refresh实现上拉加载和下拉刷新 使用SwipeToRefreshLayout实现上拉加载和下拉刷新 如果你对L

ListView的网络加载(使用LRU缓存,滚动监听器)

public class MainActivity extends AppCompatActivity { private List<Newsbeans> mlist; private static String url="http://www.imooc.com/api/teacher?type=4&num=30"; private ListView listView; @Override protected void onCreate(Bundle savedI

cocos2dx ListView 大量 Item 加载方案(转)

[原]cocos2dx ListView 大量 Item 加载方案 2014-11-17阅读599 评论3 问题描述: 在项目中对于常常要在一个ListView中加载大量Item这种需求应该都是比较常见的需求.按一般的做法我们常常会遇到如下瓶颈问题: 1.大量加载导致界面加载需要等待比较长的时间 2.大量加载Item那么Item中的图片资源会消耗太多内存 现在将我的解决方案分享出来(只给出的大致的描述,如果要实现细节代码的可以联系我). 解决方案一: 方案描述: 起初的时候我采用的的方案是分帧去