`
我要阳光
  • 浏览: 59555 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

高效 list adapter

 
阅读更多
Android api demo里面有一个编写高效list adapter的demo,里面写了建议的两条高效原则

1. 在getView方法中,重复利用 convertView,convertView是旧的View,建议先判断是否为空,如果不为空,可以修改其内容来显示新的row。

public View getView(int position, View convertView, ViewGroup parent) {
            SpeechView sv;
            if (convertView == null) {
                sv = new SpeechView(mContext, mTitles[position],
                        mDialogue[position]);
            } else {
                sv = (SpeechView) convertView;
                sv.setTitle(mTitles[position]);
                sv.setDialogue(mDialogue[position]);
            }

            return sv;
        }


2. 在getView方法中,利用ViewHolder来保存与convertView相关联的子View,避免调用 findViewById方法,以提高效率

public View getView(int position, View convertView, ViewGroup parent) {
            // A ViewHolder keeps references to children views to avoid unneccessary calls
            // to findViewById() on each row.
            ViewHolder holder;

            // When convertView is not null, we can reuse it directly, there is no need
            // to reinflate it. We only inflate a new View when the convertView supplied
            // by ListView is null.
            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.list_item_icon_text, null);

                // Creates a ViewHolder and store references to the two children views
                // we want to bind data to.
                holder = new ViewHolder();
                holder.text = (TextView) convertView.findViewById(R.id.text);
                holder.icon = (ImageView) convertView.findViewById(R.id.icon);

                convertView.setTag(holder);
            } else {
                // Get the ViewHolder back to get fast access to the TextView
                // and the ImageView.
                holder = (ViewHolder) convertView.getTag();
            }

            holder.text.setText(DATA[position]);
            holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);

            return convertView;
        }
分享到:
评论

相关推荐

    android登录页面和adapter适配器实现的list列表

    本程序实现了android登录功能以及list的adapter列表功能

    android recyleview list adapter chat ui测试

    chat app ui页面

    listviewAdapter

    Adapter的一种写法 package com.xxkjx.jiusanqi; import java.util.List; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; ...

    将一个比较大的list分割为多个小的list

    将一个比较大的list分割为多个小的list,可以解决mybatis批量插⼊数据list超过⼀定长度时报错的解决办法

    list to list 将list内容移到另一个list

    list to list 将list内容移到另一个list

    listview adapter

    it's a normal Android listview adapter.The adapter extends BaseAdapter...

    list嵌套list例子

    list嵌套list,可以直接运行,其实就是事件拦截

    C语言头文件 LIST C语言头文件 LIST

    C语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言头文件 LISTC语言...

    高效安全的Immutable List好处.docx

    Immutable List,顾名思义,就是,啥,不明白 Immutable 是什么意思?一成不变的意思,所以 Immutable List 就是...它是高效的; 因为它是不可变的,就可以像 String 一样传递给第三方类库,不会发生任何安全问题。

    Android代码-Android 轻量级适配器

    EasyAdapter Android万能适配器,通吃所有的AbsListView、RecyclerView。... public ListViewAdapter(Context context, List list, int... layoutIds) { super(context, list, layoutIds); } @Override

    List转换为List

    List转换为List, List转换为List<Object> list转化为 JsonArray ,list转换JsonArray

    【Robotframework】列表List的常用操作.pdf

    判断list相等 注意:@{list}是robot提供的语法,python并没有@{},只有${},所以要⽐较两个@{list},需要把@{list},直接写成英⽂dollar ${list}进 ⾏对⽐ ⽰例: @{list} Create List lilei hanmeimei liming ...

    java 数组转list list转数组 list数组互转

    java 数组转list list转数组 list数组互转 java8 代码示例

    c# List类排序方法

    List类几种排序方法比较灵活 可以根据自己的需要 选用合适的方法

    Docker中的Alist挂载qBittorrent实现离线下载

    Docker中的Alist挂载qBittorrent实现离线下载 1.Alistzh中设置qBittorrent的信息 1)进入Alist 2)选择“管理” 3)在设置中点“其他” 在下面的红色框中输入对应qBittorrent的用户名,密码,访问IP及端口号 输入...

    C语言头文件 LIST.H

    C语言头文件 LIST.HC语言头文件 LIST.HC语言头文件 LIST.HC语言头文件 LIST.HC语言头文件 LIST.HC语言头文件 LIST.HC语言头文件 LIST.HC语言头文件 LIST.HC语言头文件 LIST.HC语言头文件 LIST.HC语言头文件 LIST.HC...

    把excel导入List中行也为list

    把excel导入List中行也为list 结果为 list<list<String>>的集合

    java List排序工具类

    java List排序工具类 使用示例: new OrderUtils().order(list, "name", OrderUtils.DESC); 相关实例代码: public static void main(String[] args) { List<Person> list = getData(); // 获取无序数据 new ...

    浅谈C#中ListT对象的深度拷贝问题

    一、List对象中的T是值类型的情况(int 类型等) 对于值类型的List直接用以下方法就可以复制: List<T> oldList = new List(); oldList.Add(..); List<T> newList = new List(oldList); 二、List对象中的T是引用...

    ListViewAdapter

    这是我一下午的总结,listview常用的方法,和三种基本适配器以及实际开发中通过泛型的适配器以及万能适配器,如果大家感兴趣,这里有文章的地址:http://write.blog.csdn.net/postlist

Global site tag (gtag.js) - Google Analytics