2019独角兽企业重金招聘Python工程师标准>>>

自从recycleview问世,listview走上了被抛弃的道路,这个慢慢过时的控件,就真的一无是处了吗?

recycleview的优点就是灵活性很好,缺点也有,就是灵活性太好了,很多东西需要自己动手去写,例如添加头部,添加item的点击事件,回头想想,在listview中,这些功夫都省去了,如果需求不是特别复杂的话,listview还是很有用武之地的。

listview调用三部曲

1、在xml布局文件中添加listview控件,创建item布局文件

 <ListViewandroid:id="@+id/listview"android:layout_width="match_parent"android:layout_height="wrap_content" />

2、创建adapter

public class MyAdapter extends BaseAdapter {private List<Map<String, String>> data;private Context context;public MyAdapter(List<Map<String, String>> data, Context context) {this.data = data;this.context = context;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn data.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn data.get(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubViewHolder holder = null;if (convertView == null) {holder = new ViewHolder();convertView = View.inflate(context, R.layout.item, null);//item布局文件convertView.setTag(holder);} else {holder = (ViewHolder) convertView.getTag();}//在这里初始化数据和绑定相关事件return convertView;}private class ViewHolder {}
}

3、绑定listview控件,并初始化

//初始化数据
private List<Map<String, String>> datalist;private void initData() {datalist = new ArrayList<Map<String, String>>();for (int i = 0; i < 20; i++) {datalist.add(new HashMap<String, String>());}
}//初始化listview控件
private ListView listview;
private Context mContext;
private MyAdapter adapter;listview = (ListView) findViewById(R.id.listview);
adapter = new MytAdapter(datalist, mContext);
listview.setAdapter(adapter);

这里插入的数据被放到list里面,通过map键值对来输入具体数据,相对灵活,如果每次输入的数据都是固定的几组,可以创建一个bean来替代map,例如

private void initData() {datalist = new ArrayList<Listbean>();for (int i = 0; i < 15; i++) {Listbean bean = new Listbean();bean.setTitle("测试数据--" + i);bean.setType(i % 3);datalist.add(bean);}}

转载于:https://my.oschina.net/carbenson/blog/729922

落日余晖,listview快速编写相关推荐

  1. Emmet:HTML/CSS代码快速编写规范(转发)

    Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演示: ...

  2. Emmet插件:HTML/CSS代码快速编写神器

    Emmet插件的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演示 ...

  3. Sublime Text 3插件之Emmet:HTML/CSS代码快速编写神器

    一.快速编写HTML代码 1.  初始化 HTML文档需要包含一些固定的标签,比如<html>.<head>.<body>等,现在你只需要1秒钟就可以输入这些标签. ...

  4. Emmet:HTML/CSS代码快速编写神器

    本文来源:http://www.iteye.com/news/27580,还可参考:http://www.w3cplus.com/tools/emmet-cheat-sheet.html Emmet的 ...

  5. Emmet:HTML/CSS代码快速编写器

    一.快速编写HTML代码 1.  初始化 html:5 或!:用于HTML5文档类型 html:xt:用于XHTML过渡文档类型 html:4s:用于HTML4严格文档类型 如 !+tab: < ...

  6. 跳转类内方法快捷键_想要快速编写代码,你得熟悉这些快捷键!

    PyCharm 常用快捷键 导语 工欲善其事必先利其器,想要快速编写代码,就必须要先熟悉快捷键,Python开发利器Pycharm常用快捷键如下,相信有了这些快捷键,你编写代码会事半功倍. 1编辑 S ...

  7. Emmet 快速编写html代码

    简介 快速编写HTML代码 语法简单,语法类似css选择器,30分钟内你就可以搞定它.开发商为sublime.atom.brackets.hbuilder.webstrom等编辑器或IDE提供对应的插 ...

  8. 快速编写HTML代码常用的方法

    在前端开发的过程中,一个最繁琐的工作就是写 HTML.CSS 代码.数量繁多的标签.属性.尖括号.标签闭合等,让前端们甚是苦恼.于是,我向大家推荐 Emmet,它提供了一套非常简单的语法规则,书写起来 ...

  9. VS+VAX的提示功能快速编写C51程序

    虽然有智能提示的软件有很多,比如Source Insight.Ultra Edit,但我都不太喜欢.周立功的TKStudio也用过,感觉还行,但还是不太满意. 由于学C#,我的电脑上安装了Visual ...

最新文章

  1. phpcms开启、关闭在线编辑模板的方法
  2. 新技术 新体验 - 北京.NET俱乐部Visual Studio2008 MVC 交流会
  3. Xcode6中添加pch文件
  4. 修改sh文件_修改Android分区大小
  5. PAT_B_1006 换个格式输出整数
  6. 2 172.02 php,kafka安装、相关命令以及PHP使用
  7. java课程设计 博客园_java课程设计
  8. Tiktok培训可以去学习吗?
  9. CPCI总线和VPX总线的区别
  10. 我的Android进阶之旅------gt;Android【设置】-【语言和输入法】-【语言】列表中找到相应语言所对应的列表项...
  11. 产品经理入门知识梳理
  12. 正则表达式之邮箱地址格式+非法字符+后缀长度的验证
  13. Qt-添加软件图标(logo)
  14. 移动端input提起数字键盘如何设置小数点?
  15. mysql a foreign key constraint fails_外键记录有存在,插入数据却报错a foreign key constraint fails...
  16. FTP 服务器搭建(图文教程、实现匿名与用户双登录)
  17. 关于ORA-1658错误和用户表空间配额
  18. swi 指令能用在C语言吗,SWI指令---软件中断实例详解
  19. 新概念2背诵500遍后的感受
  20. ORACLE 数据文件创建,查询,删除,恢复 相关SQL 整理

热门文章

  1. list.sort() 方法可以用函数作 key 的参数
  2. 基于FPGA的光口通信开发案例|基于Kintex-7 FPGA SFP+光口的10G UDP网络通信开发案例
  3. Lipschitz常数、Lipschitz条件
  4. iOS 系统方法获取当前位置经纬度
  5. 闪电鸡步数银行:自动挂机赚,0.3起提秒到!
  6. linux中的日志切割
  7. 【科普】关于装机CPU参数介绍及选取原则
  8. 微机接口-8086CPU
  9. MAXIMO部分AppBean类操作经验
  10. google浏览器扩展翻译程序