- 浏览: 6359200 次
- 性别:
- 来自: 一片神奇的土地
文章分类
- 全部博客 (745)
- JQuery (25)
- JS (33)
- 数据库 (59)
- Java基础 (56)
- JSON (8)
- XML (8)
- ireport (7)
- 设计模式 (10)
- 心情 (14)
- freemarker (1)
- 问题 (15)
- powerdesigner (2)
- CSS (15)
- DWR (4)
- tomcat (16)
- Hibernate (12)
- Oracle (7)
- Struts (7)
- Spring (34)
- JSP (23)
- 需学习 (64)
- 工具类库 (63)
- Maven (14)
- 笔试题 (34)
- 源码学习 (31)
- 多线程 (39)
- Android (32)
- 缓存 (20)
- SpringMVC (14)
- jQueryEasyUi (12)
- webservice-RPC (13)
- ant (1)
- ASP.NET (10)
- 正则表达式 (3)
- Linux (15)
- JBoss (1)
- EJB (3)
- UML (2)
- JMS (3)
- Flex (8)
- JSTL (2)
- 批处理 (5)
- JVM (16)
- 【工具】 (16)
- 数据结构 (29)
- HTTP/TCP/Socket (18)
- 微信 (1)
- tomcat源码学习 (15)
- Python (30)
- 主机 (2)
- 设计与架构 (19)
- thrift-RPC (2)
- nginx (6)
- 微信小程序 (0)
- 分布式+集群 (12)
- IO (1)
- 消息队列 (4)
- 存储过程 (8)
- redis (9)
- zookeeper (5)
- 海量数据 (5)
最新评论
-
360pluse:
技术更新,战术升级!Python爬虫案例实战从零开始一站通网盘 ...
Python爬虫实战:Scrapy豆瓣电影爬取 -
18335864773:
推荐用 pageoffice 组件生成 word 文件。
JAVA生成WORD工具类 -
jjhe369:
LISTD_ONE 写道起始地址为163.135.0.1 结束 ...
IP地址与CIDR -
baojunhu99:
private final int POOL_SIZE = 5 ...
使用CompletionService获取多线程返回值 -
LovingBaby:
胡说,javascript 运行时是单线程的,event lo ...
Ajax请求是否可以实现同步
3. 使用SimpleAdapter
使用SimpleAdapter 来实现ListView 是比较灵活和多变的方法,它所显示的ListView 不在仅仅是一行字了,可以是图片、文字、按钮等等。
可以自定义样式,这就意味着需要我们自己来设置布局文件,需要两个布局文件,一个是整个Activity 的布局文件,另一个是ListView 中每个条目的布局文件 ,代码片段如下:
Activity 布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="测试SimpleAdapter"/> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
ListView中每个条目即每行的布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal"> <!-- 注意每行布局是横向布局 --> <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/name" android:layout_width="180dp" android:layout_height="30dp" android:layout_marginLeft="20dp" android:textColor="#F65327" android:singleLine="true" /> <TextView android:id="@+id/age" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:gravity="right" android:textColor="#F65327"/> <!-- 最后一个TextView的布局layout_width不用fill_parent的话,就无法右对齐 --> </LinearLayout>
JAVA代码:
package com.example.firstandroid; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.ListActivity; import android.os.Bundle; import android.view.View; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.Toast; public class SimpleAdapterDemoActivity extends ListActivity { private ArrayList<Map<String, Object>> list = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_simple_adapter_demo); // 创建一个ArrayList,里面的每一项都是一个条目的内容,而每一个条目都是放在HashMap中的键值对 list = getData(); // SimpleAdapter有若干参数 // 1. Context,当前的Activity // 2. 传入的List,List内存放的是Map // 3. 每一个条目的布局文件,即user.xml // 4. 一个String数组,是代表ListView显示的时候,每一列所代表的含义,这个String数组的内容,要与之前Map中放置的键值对的Key相对应 // 5. 一个int数组,代表布局文件user.xml中,上面String数组中的Key所对应那个布局 SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.user, new String[] { "image", "name", "age" }, new int[] { R.id.image, R.id.name, R.id.age }); setListAdapter(adapter); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { // super.onListItemClick(l, v, position, id); Toast.makeText( SimpleAdapterDemoActivity.this, String.valueOf(list.get(position).get("name")) + " is " + String.valueOf(list.get(position).get("age")) + " years old.", Toast.LENGTH_SHORT).show(); } public ArrayList<Map<String, Object>> getData() { list = new ArrayList<Map<String, Object>>(); HashMap<String, Object> m1 = new HashMap<String, Object>(); HashMap<String, Object> m2 = new HashMap<String, Object>(); HashMap<String, Object> m3 = new HashMap<String, Object>(); m1.put("image", R.drawable.dota1); m1.put("name", "Jack"); m1.put("age", "63"); m2.put("image", R.drawable.dota1); m2.put("name", "Bob"); m2.put("age", "15"); m3.put("image", R.drawable.dota2); m3.put("name", "Theron"); m3.put("age", "25"); list.add(m1); list.add(m2); list.add(m3); return list; } }
对上述代码进行分析,首先,它不再继承Activity 类,而是继承了ListActivity 类 ,需要使用SimpleAdapter 来建立ListView 的话,需要若干参数。第一个是Activity 的上下文对象;第二个是一个List 的对象,用来存放数据,List 中每一个数据,都是一个Map 对象,在Map 对象中存放着名称与数据的实际的键值对,上面代码建立了3 个HashMap ,也就是listView 中的3 个条目,每个条目是一个HashMap, 我们的ListView 有三列 ,分别是布局文件中的一个ImageView 和两个TextView ,因此,每个HashMap 中需要设置一个ImageView 和两个TextView 的数据,设置完成之后,将3 个HashMap 加入List 中;第三个参数是每个条目的布局文件,也就是上面的第二个布局文件;第四个参数是一个String 数组,表示着我们建立的ListView 中每列分别代表什么;第五个参数是一个int 数组,代表布局文件user.xml 中,上面String 数组中的Key 所对应那个布局。
接着将SimpleAdapter
对象设置给Activity
,就可以实现ListView
的显示了。
同样,可以onListItemClick 方法来对点击事件进行响应。如下为运行效果,可以看出它比上述两种方式更加灵活,可以自由扩展。
参考:http://theron.blog.51cto.com/2383825/649771
发表评论
-
选择照片和拍照
2018-06-13 15:31 1675Android拍照或从本地选择图片上传 Android ... -
PullToRefresh的简单使用
2018-05-31 16:06 1311Android下拉刷新控件--PullToRefresh的简 ... -
fragment内嵌fragment之间传值+切换fragment
2018-05-30 11:59 13474跳转: 从一个Fragment跳转到另一个Fragmen ... -
控件使用问题
2018-05-22 09:59 1562TextView最大长度限制,超出部分省略号显示 xml ... -
ViewPager+RadioGroup+TabLayout
2018-05-22 09:38 1130ViewPager: ViewPager 详解(五)-- ... -
网络请求工具类HttpUtils
2018-05-19 21:07 2433代码如下: import android.app.Acti ... -
android排版布局学习
2018-05-18 16:24 3902Android开发学习之路--UI之基本布局 andro ... -
[工具]-Android切图
2018-05-18 14:21 1529切图小科普!聊聊原生APP切图那些事儿 安卓APP设计规 ... -
【Android基础问题】
2018-05-18 13:49 7451、appcompat_v7: appcompat_v7 ... -
WebView使用
2018-05-17 17:42 1208Android:最全面的 Webvie ... -
《第一行代码》服务+AsyncTask+定时任务
2018-04-23 09:45 179714、服务 服务(Service)是 Androi ... -
《第一行代码》通知+接收拦截发送短信
2018-04-23 09:44 171513、通知 在活动里 ... -
《第一行代码》内容提供器
2018-04-20 16:08 129912、内容提供器 内容提供器(Content Pro ... -
《第一行代码》数据存储
2018-04-20 16:07 70011、数据存储 将数据存储到文件中 ope ... -
《第一行代码》广播
2018-04-20 15:34 100810、广播接收器(Broadcast Receive ... -
《第一行代码》控件、布局、碎片
2018-04-20 14:40 9278、控件 TextView: a ... -
【Android studio配置和错误】
2018-04-20 14:21 4074Gradle是一个基于Apache Ant和Apache ... -
《第一行代码》基础总结
2016-07-12 22:07 1930activity的生命周期—— ... -
《第一行代码》扩展总结
2016-06-29 15:28 1347Android更新UI的两种方法——handler与run ... -
Android快速开发工具类
2016-01-21 14:56 2004来源:http://blog.csdn.net/lmj62 ...
相关推荐
SimpleAdapter是Android提供的一种简单易用的适配器,它可以帮助开发者将数据集(如数组或列表)绑定到ListView上,使得数据能够以列表的形式展示给用户。本教程将深入探讨如何使用SimpleAdapter来实现ListView的...
2. **Adapter**: 适配器是连接数据源和ListView的关键组件。它的主要职责是将数据转化为ListView能够理解的视图格式。Android提供了多种预定义的Adapter,如ArrayAdapter、CursorAdapter和SimpleAdapter等。 3. **...
《List控件使用---SimpleAdapter使用详解(一)》博文对应源码,该博文讲解了怎样使用simpleAdapter及派生自BaseAdater的ListView的使用方法,博客地址:...
《 List控件使用---SimpleAdapter使用详解(二)》:实现从本地JSON文件生成listView界面;对应博文地址:http://blog.csdn.net/harvic880925/article/details/17288687
《List控件使用---SimpleAdapter使用详解(一)》对应源码,讲解了listView的使用,博文对应地址:http://blog.csdn.net/harvic880925/article/details/17258789
在Android中,常见的Adapter有ArrayAdapter、SimpleAdapter等,我们可以根据实际需求选择合适的Adapter实现。 实现A-Z字母排序的关键步骤如下: 1. 数据准备:确保你的数据源(如ArrayList)中的对象包含一个可以...
这份"Android listView学习源码"是针对初学者和毕业生设计的一个教学示例,旨在帮助他们深入理解ListView的工作原理和实际应用。 1. **ListView基本使用**: - `Adapter`:ListView的核心在于Adapter,它负责将...
SimpleAdapter则是ListView常用的适配器,它简化了数据绑定和UI展示的过程。本篇文章将深入探讨ListView和SimpleAdapter的基本使用以及它们在实际应用中的结合。 ### 1. ListView简介 ListView是Android SDK提供的...
通过查看这个项目,你可以更直观地学习ListView和SimpleAdapter的使用方法,包括布局文件的编写、数据源的构造以及适配器的实例化等。 总的来说,ListView结合SimpleAdapter提供了一种便捷的方式来展示结构化的列表...
`SimpleAdapter`是Android SDK提供的一种适配器,它继承自`BaseAdapter`,并简化了数据绑定到列表视图(ListView)的过程。本篇内容将详细解释`SimpleAdapter`的工作原理以及如何使用它来创建列表。 `SimpleAdapter...
2. 实现排序逻辑: 在Java中,我们可以使用Collections.sort()方法对List进行排序。这个方法接受一个Comparator对象,用于定义比较规则。对于字符串,我们可以直接使用默认的比较器,它会按照字典顺序(即A-Z)进行...
2. **SimpleAdapter的构造方法** SimpleAdapter有多个构造方法,但最常用的是以下两个: - `SimpleAdapter(Context context, List, ?>> data, int resource, String[] from, int[] to)` - `context`:当前...
SimpleAdapter是ListView的适配器之一,它的特点是简单易用且具有高度的可扩展性,允许开发者自定义列表项的布局。本篇文章将深入讲解如何使用SimpleAdapter创建ListView实例。 首先,我们来看一下ListView的基本...
2. **自定义Adapter**:Adapter是连接ListView和数据源的桥梁,需要重写`getView()`方法以定义每个条目的显示样式。常见的Adapter有ArrayAdapter、SimpleAdapter等,但自定义Adapter可以提供更大的灵活性。 3. **...
2. Adapter:是ListView的灵魂,负责将数据源转化为ListView可以显示的视图。常见的Adapter有ArrayAdapter、SimpleAdapter等,开发者也可以自定义Adapter。 3. ViewHolder模式:为了提高ListView的滚动性能,通常...
总结来说,这个资源包提供了一个关于在ListView中自定义图片轮换的示例,对于想要学习Android自定义Adapter和图片动画的开发者来说,这是一个很好的学习材料。开发者可以通过理解并实践这份代码,掌握在ListView中...
Xamarin.Android 使用 SimpleAdapter 打造 ListView 万能适配器-附件资源
2. **双ListView实现** - **并排布局**: 双ListView共存通常需要在同一个布局文件中使用两个ListView,通过LinearLayout或RelativeLayout进行横向排列。 - **独立的Adapter**: 每个ListView需要自己的Adapter来...
综上所述,这个资源包提供了一个基于ListView的日历视图实现,对于理解ListView的使用和自定义,以及日历视图的开发具有很高的学习价值。开发者需要对Android基础和ListView原理有深入理解,才能充分利用这个资源...
本项目是一个关于ListView的源码学习示例,旨在帮助开发者深入理解ListView的工作原理和使用技巧,对于进行Android毕业设计和论文撰写具有很高的参考价值。 首先,ListView的核心功能是显示一个可滚动的列表项,每...