博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android网络课程笔记-----ListView
阅读量:4611 次
发布时间:2019-06-09

本文共 1655 字,大约阅读时间需要 5 分钟。

一个不可忽视的控件,几乎和互联网和用户有关的,都会涉及到ListView,今天介绍一个高效的ListView写法,并介绍ListViewAdapter五步法

在Activity中,ListView的写法千篇一律
第一步:加载数据List
data = new ArrayList
();for(int i=0;i<=30;i++){ data.add("aaa"+i);}
第二步:加载ListViewListView  listview = (ListView)this.findViewById(R.id.listView1);
第三步:加载AdapterListViewAdapter listViewAdapter = new ListViewAdapter(this,data);listView.setAdapter(listViewAdapter);

完事

重头戏,ListViewAdapter的写法
第四步:ViewHolder       //利用泛型加载控件public static 
T get(View view,int id){ SparseArray
viewHolder = (SparseArray
)view.getTag(); if (viewHolder == null) { viewHolder = new SparseArray
(); view.setTag(viewHolder); } View childView = viewHolder.get(id); if (childView == null) { childView = view.findViewById(id); viewHolder.put(id, childView); } return (T)childView; }
第五步:getView       //判断是否新建视图对象        if(convertView == null){            convertView = LayoutInflater.from(this.context).inflate(R.layout.list_item, null);            Log.e("Adapter", "新建行号:"+String.valueOf(position));        }        //加载控件        TextView textView = ViewHolder.get(convertView,R.id.editText1);        //操作控件        textView.setText(data.get(position));        //返回视图        return convertView;

本文中用了SparseArray来存储视图,SparseArray是android里为<Interger,Object>这样的Hashmap而专门写的class,目的是提高效率

 

转载于:https://www.cnblogs.com/vijay/p/3532949.html

你可能感兴趣的文章
[zz]GDB调试精粹及使用实例
查看>>
数据库的创建和删除
查看>>
最简单的三层实例【插入据
查看>>
设计模式学习笔记——Prototype原型模式
查看>>
pom.xml里有红叉报错的解决办法
查看>>
Perl last和next的用法区别
查看>>
Selenium 管理 Cookies
查看>>
exceptionfunction[LeetCode]Permutations
查看>>
Linux(2)_常用命令2
查看>>
自定义分页
查看>>
[转]DELPHI——调试(1)
查看>>
JS秒数转成分秒时间格式
查看>>
xp_cmdshell 命令的开启与关闭,和状态查询
查看>>
Linux sudoers
查看>>
MySQL详解(18)-----------分页方法总结
查看>>
bzoj 4595 激光发生器
查看>>
multi cookie & read bug
查看>>
js时间转换
查看>>
(转载) Android Studio你不知道的调试技巧
查看>>
队列实现霍夫曼树
查看>>