listview的两种适配器
- 一、 ArrayAdapter
- ListView listView = (ListView) findViewById(R.id.list_view);//ListView的参数为id
- listView.setAdapter(new ArrayAdapter<Person>(this, android.R.layout.simple_list_item_1, list));//对象是Person,第一个参数是context,第二个是指代要显示的模版,最后一个是要显示的数据,list为person类的ArrayList集合。
- 二、 BaseAdapter
- 、一行一行的显示对象
- ①、定义MyAdapter来继承BaseAdapter
- class MyAdapter extends BaseAdapter {
- @Override
- public int getCount() {
- return list.size();//list为person对象的List
- }
- @Override
- public Object getItem(int position) {
- return null;
- }
- @Override
- public long getItemId(int position) {
- return ;
- }
- /**
- * 缓存的是被遮住的那一行
- */
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- TextView textview = null;
- if (null != convertView) {
- textview = (TextView) convertView;
- } else {
- textview = new TextView(MainActivity.this);
- }
- textview.setText(list.get(position).toString());
- return textview;
- }
- }
- ②、设置适配器
- ListView listview = (ListView) findViewById(R.id.list_view);
- listview.setAdapter(new MyAdapter());
- 、自定义一个xml,加入到ListView中再一行一行显示
- ①、定义自己的要显示的一行的内容布局文件----list_item.xml
- ②、定义MyAdapter来继承BaseAdapter
- class MyAdapter extends BaseAdapter
- {
- @Override
- public int getCount() {
- return list.size();
- }
- @Override
- public Object getItem(int position) {
- return null;
- }
- @Override
- public long getItemId(int position) {
- return ;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- //布局转换器 作用就是讲一个布局转换为一个对象
- LayoutInflater flater = MainActivity1.this.getLayoutInflater();
- View view = flater.inflate(R.layout.list_item, null); //真正将一个布局文件转为一个对象
- //在一个特定的对象上去查找一个ID所对应的组件
- TextView text_name = (TextView) view.findViewById(R.id.list_view_name);
- TextView text_age = (TextView) view.findViewById(R.id.list_view_age);
- Person person = list.get(position);
- text_name.setText(person.getName());
- text_age.setText(String.valueOf(person.getAge()));
- return view;
- }
- }
- ③、设置适配器
- ListView listview = (ListView) findViewById(R.id.list_view);
- listview.setAdapter(new MyAdapter());
- 三、SimpleAdapter,显示的一行内容里面包含多行数据
- ①、定义自己的要显示的一行中要显示的多行的布局文件----list_item.xml
- ②、设置适配器(代码的意思是要显示的多行xml中是一行name,一行age);
- ListView listview = (ListView) findViewById(R.id.list_view);
- List<Map<String, String>> data = new ArrayList<Map<String, String>>();
- Map<String, String> info = new HashMap<String, String>();
- info.put("name", "zs");
- info.put("age", "");
- data.add(info);
- info = new HashMap<String, String>();
- info.put("name", "wangwu");
- info.put("age", "");
- data.add(info);
- info = new HashMap<String, String>();
- info.put("name", "wangwu");
- info.put("age", "");
- data.add(info);
- info = new HashMap<String, String>();
- info.put("name", "wangwu");
- info.put("age", "");
- data.add(info);
- info = new HashMap<String, String>();
- info.put("name", "wangwu");
- info.put("age", "");
- data.add(info);
- info = new HashMap<String, String>();
- info.put("name", "wangwu");
- info.put("age", "");
- data.add(info);
- SimpleAdapter simple = new SimpleAdapter(this, data,
- R.layout.list_item, new String[] { "name", "age" }, new int[] {
- R.id.list_view_name, R.id.list_view_age });
- listview.setAdapter(simple);
listview的两种适配器的更多相关文章
- (转载) Android-Spinner的使用以及两种适配器
目录视图 摘要视图 订阅 赠书 | 异步2周年,技术图书免费选 程序员8月书讯 项目管理+代码托管+文档协作,开发更流畅 Android-Spinner的使用以及两种适配器 201 ...
- ListView+CheckBox两种解决方式及原因分析
近期在用ListView+CheckBox搞一个item选中的项目,我将CheckBox的focus设置为false,另我大喜的是,CheckBox居然能够选中(窃喜中),这么简单就搞定了,由于数据量 ...
- 【Android自学日记】两种适配器的使用
ArrayAdapter适配器: (1)用于显示基本的文字内容 (2)基本使用过程:新建适配器---创建或加载数据源---适配器加载数据源---视图加载适配器 ArrayAdapter(上下文,当前L ...
- Android ListView两种长按弹出菜单方式
转自:http://www.cnblogs.com/yejiurui/p/3247527.html package com.wyl.download_demo; import java.util.Ar ...
- Android中通过数组资源文件xml与适配器两种方式给ListView列表视图设置数据源
场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...
- 一个ListView怎么展示两种样式
private class MyBaseMsgAdapter extends BaseAdapter { //获取数据适配器中条目类型的总数,修改成两种(纯文本,输入+文字) @Override pu ...
- 几种适配器&观察者&ListView之间的那点事
android中的几种适配器&观察者&ListView 1.我们知道Android中的Adapter类是处于ListView和数据源之间的数据总线,它负责为ListView提供数据. ...
- 我的Android进阶之旅------>Android Listview跳到指定条目位置的两种实现方法
前言 今天实现ListView跳转到第一个条目位置时,使用smoothScrollToPosition(int position)方法跳转实现了,但是交互说不需要这样的动画效果,需要直接跳转到第一项, ...
- Android一个ListView列表之中插入两种不同的数据
http://www.cnblogs.com/roucheng/ Android一个ListView列表之中插入两种不同的数据 代码如下: public class ViewHolder{ Butto ...
随机推荐
- Python3基础 str split 用指定的字符将字符串分割
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- linux交叉编译gcc4.8.3
1.环境: Ubuntu 16.04 2.获取 wget mirrors.ustc.edu.cn/gnu/gcc/gcc-4.8.3/gcc-4.8.3.tar.bz2 3.解压 tar xvf gc ...
- luogu P4396 [AHOI2013]作业
目录 题目 思路 错误&&傻叉 代码 题目 luogu 思路 每次都是插入比之前所有数字大的数,所以之前的答案就不会改变 用fhq-treap求出原序列,然后用树状数组依次算出每个值得 ...
- C#入门经典 第六章 委托
C#入门经典 第六章 6.6 委托的声明非常类似于函数,但不带函数体,且要使用delegate关键字. 委托的声明指定了一个返回类型和一个参数列表. 在定义了委托后,就可以声明该委托类型的变量. 接着 ...
- dp暑假专题 训练记录
A 回文串的最小划分 题意:给出长度不超过1000的字符串,把它分割成若干个回文字串,求能分成的最少字串数. #include <iostream> #include <cstdio ...
- DPDK无法分出大页面:EAL: No free hugepages reported in hugepages-2048kB 解决方法
参考: [dpdk-users] Fw: DPDK Error --> EAL: No free hugepages reported in hugepages-2048kB DPDK无法分出连 ...
- C# 实现简单的 Heap 堆(二叉堆)
如题,C# 实现简单的二叉堆的 Push() 和 Pop(), 如有不足欢迎指正. 另外,在C#中使用 Heap 的相似功能可以考虑使用:Priority Queues,SortedDictiona ...
- NOI 8467 鸣人的影分身
http://noi.openjudge.cn/ch0206/8467/ 描述 在火影忍者的世界里,令敌人捉摸不透是非常关键的.我们的主角漩涡鸣人所拥有的一个招数——多重影分身之术——就是一个很好的例 ...
- .net 与 java 开发微服务对比
java+spring boot+maven对比.net 优势: 1. spring 自身带的ioc 比.net 更简单易用. 2. spring actuator的健康检测等运行时状态查看功能很赞. ...
- Robot framework(RF)学习基础
1.框架特点 2.安装 3.基本内容 RF框架是通用的测试框架,一直由诺西网络维护. 易于使用 采用表格法 可以使用关键字驱动,数据驱动和行为驱动开发完成.(keyword-driven,data-d ...