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
1、一行一行的显示对象
①、定义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 0;
}
/**
* 缓存的是被遮住的那一行
*/
@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());
2、自定义一个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 0;
}
@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", "20");
data.add(info);
info = new HashMap<String, String>();
info.put("name", "wangwu");
info.put("age", "111");
data.add(info);
info = new HashMap<String, String>();
info.put("name", "wangwu");
info.put("age", "111");
data.add(info);
info = new HashMap<String, String>();
info.put("name", "wangwu");
info.put("age", "111");
data.add(info);
info = new HashMap<String, String>();
info.put("name", "wangwu");
info.put("age", "111");
data.add(info);
info = new HashMap<String, String>();
info.put("name", "wangwu");
info.put("age", "111");
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的几种形式的更多相关文章
- 代替jquery $.post 跨域提交数据的N种形式
跨域的N种形式: 1.直接用jquery中$.getJSON进行跨域提交 优点:有返回值,可直接跨域: 缺点:数据量小: 提交方式:仅get (无$.postJSON) $.getJSON(" ...
- C++:一般情况下,设计函数的形参只需要两种形式
C++:一般情况下,设计函数的形参只需要两种形式.一,是引用形参,例如 void function (int &p_para):二,是常量引用形参,例如 void function(const ...
- jquery插件的两种形式
这里总结一下jquery插件的两种形式,一种是通过字面量的形式组织代码,另一种是通过构造函数的方式.下面就两种形式来分析俩个例子. 例子1: ;(function ($,window,document ...
- javascript面向对象系列第三篇——实现继承的3种形式
× 目录 [1]原型继承 [2]伪类继承 [3]组合继承 前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.本文是javascript面向对象系列第三篇——实现继承的3种形式 [ ...
- 移动端App广告常见的10种形式
什么是App广告? App广告,或称In-App广告,是指智能手机和平板电脑这类移动设备中第三方应用程序内置广告,属于移动广告的子类别. App广告兴起得益于其载体—App的风行.平板电脑和大屏触 ...
- SQL 关于apply的两种形式cross apply 和 outer apply(转)
转载链接:http://www.cnblogs.com/shuangnet/archive/2013/04/02/2995798.html apply有两种形式: cross apply 和 oute ...
- Struts2中Action接收参数的四种形式
1.Struts2的Action接收参数的三种形式. a. 使用Action的属性接收(直接在action中利用get方法来接收参数): login.js ...
- Node.js-提供了四种形式的定时器
Node.js提供了四种形式的定时器 global.setTimeout(); //一次性定时器 global.setInterval(); //周期性定时器 global.nextTick(); / ...
- 参数传递的四种形式----- URL,超链接,js,form表单
什么时候用GET, 查,删, 什么时候用POST,增,改 (特列:登陆用Post,因为不能让用户名和密码显示在URL上) 4种get传参方式 <html xmlns="http:/ ...
随机推荐
- android小细节
1.资源包图片尽量控制在50k以内,否则可能读取失败 2.资源图片建议使用png格式,此格式在android系统上支持最好.对于jpeg和gif格式的图片,在android4.0以后版本,通过系统自缩 ...
- activity退出
这里介绍两种方法:一种把每个activity记住,然后逐一干掉:另一种思路是使用广播.本文来源于网络,如有雷同,那是必须的.写此贴只是为了总结一下常用东东,还望原作者莫怪,本人真不是想侵权. 方法一. ...
- Android-ImageView.ScaleType
ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等. 设置的方式包括: 1. 在layout xml中定义android:s ...
- 基本配置6-被忽悠进了CentOS 6
今天突然想到原来配置的apache2与tomcat的连接,测试发现有2个小问题: 1.<%=path%>丢失问题:原来配置的 ProxyPass /xxx http://192.168.1 ...
- Hive参数层面常用优化
1.hive数据仓库权限问题: set hive.warehouse.subdir.inherit.perms=true; 2.HiveServer2的内存 连接的个数越多压力越大,可以加大内存:可以 ...
- Bootstrap 3 How-To #1 下载与配置
Bootstrap 3 发布了,通过简单的几步,我们就可以使用 Bootstrap 的样式表,图标,以及 javascript 来配置一个简单的站点. 准备 Bootstrap 不仅仅是一个代码集,还 ...
- windows下如何使用makefile编译
1. 编写makefile. 2. 使用nmake进行编译, vs2010或者其他都是用nmake进行编译的,将bin目录添加到path环境变量中 先执行vcvars32.bat 再执行nmake
- 走出测试,走向CEO
飞测说:大家好,我们又见面了,我是黑夜小怪.不巧,今晚加班回来路上,湿身了,淋了个落汤鸡,不过明天也许可以看海了,也就呵呵了,原本想回来后聊些技术的,现在突然想先聊聊我的一些想法,仅供交流. 走出测试 ...
- Orchard官方文档翻译(四) 让Orchard在WebMatrix下工作
原文地址:http://docs.orchardproject.net/Documentation/Working-with-Orchard-in-WebMatrix 想要查看文档目录请用力点击这里 ...
- python基础(set)补充
1.函数参数(引用) 函数的传参,传的是引用 def func(args): args.appand(123) li=[11,22,33] func(li) print(li) [11,22,33, ...