listview

ListView详解(二)之simpleAdapter用法

蹲街弑〆低调 提交于 2020-02-10 04:15:45
一、SimpleAdapter的参数说明 SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) 第一个参数 表示上下文 第二个参数表示生成一个Map(String ,Object)列表选项 第三个参数表示界面布局文件的ID, 表示该文件作为列表项的组件 第四个参数表示该Map对象的哪些key对应value来生成列表项 第五个参数表示来填充的组件 Map对象key对应的资源一依次填充组件 顺序有对应关系 注意的是map对象可以key可以找不到 但组件的必须要有资源填充 因为找不到key也会返回null 其实就相当于给了一个null资源 二、使用说明 布局文件一、main.xml 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="

Android-第二天(2)

て烟熏妆下的殇ゞ 提交于 2020-02-10 04:09:18
程序3 SimpleAdapter是扩展性最好的适配器,可以定义各种你想要的布局,而且使用很方便 SimpleAdapter ( Context context, List <? extends Map < String , ?>> data, int resource, String[] from, int[] to) 参数context:上下文,比如this。关联SimpleAdapter运行的视图上下文 参数data:Map列表,列表要显示的数据,这部分需要自己实现,如例子中的getData(),类型要与上面的一致,每条项目要与from中指定条目一致 参数resource:ListView单项布局文件的Id,这个布局就是你自定义的布局了,你想显示什么样子的布局都在这个布局中。这个布局中必须包括了to中定义的控件id 参数 from:一个被添加到Map上关联每一个项目列名称的列表,数组里面是列名称 参数 to:是一个int数组,数组里面的id是自定义布局中各个控件的id,需要与上面的from对应 main.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout 3 android:id="@+id/LinearLayout01" 4 android:layout_width="fill_parent" 5

Android必学之数据适配器BaseAdapter

戏子无情 提交于 2020-02-10 03:41:12
.什么是数据适配器? 下图展示了数据源、适配器、ListView等数据展示控件之间的关系。我们知道,数据源是各种各样的,而ListView所展示数据的格式则是有一定的要求的。数据适配器正是建立了数据源与ListView之间的适配关系,将数据源转换为ListView能够显示的数据格式,从而将数据的来源与数据的显示进行解耦,降低程序的耦合性。这也体现了Android的适配器模式的使用。对于ListView、GridView等数据展示控件有多种数据适配器,本文讲解最通用的数据适配器——BaseAdapter。 .ListView的显示与缓存机制 我们知道,ListView、GridView等控件可以展示大量的数据信息。假如下图中的ListView可以展示100条信息,但是屏幕的尺寸是有限的,一屏幕只能显示下图中的7条。当向上滑动ListView的时候,item1被滑出了屏幕区域,那么系统就会将item1回收到Recycler中,即View缓冲池中,而将要显示的item8则会从缓存池中取出布局文件,并重新设置好item8需要显示的数据,并放入需要显示的位置。这就是ListView的缓冲机制,总结起来就是一句话:需要时才显示,显示完就被会收到缓存。ListView,GridView等数据显示控件通过这种缓存机制可以极大的节省系统资源。 .BaseAdapter

SimpleAdapter + ListView 使用

China☆狼群 提交于 2020-02-10 03:35:38
实现的效果图 技术分析: 第一:SimpleAdapter的构造函数 第二:list与map形成的数据结构 代码: 主界面aa.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" > 5 6 <ListView 7 android:id="@+id/listView1" 8 android:layout_width="match_parent" 9 android:layout_height="wrap_content" 10 android:layout_x="2dp" 11 android:layout_y="2dp" > 12 </ListView> 13 14 </AbsoluteLayout> 样式界面aaa.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res

ListView之SimpleAdapter

泪湿孤枕 提交于 2020-02-10 03:28:55
SimpleAdapter是安卓内置的适配器,本文展示的是listview的子项为{图片,文件}组合 如下图所示: 具体代码: SimpleAdapter_test.java 1 /* 2 ListView :列表 3 通常有两个职责: 4 a.将数据填充到布局 5 b.处理点击事件 6 7 一个ListView创建需要几个元素: 8 a.ListView中第一列的 View 9 b.填入View的图片或数据 10 c.连接数据 与ListView的适配器 11 12 13 有哪些适配器? 14 ArrayAdapter<T> 用来绑定一个数组,支持泛型设计 15 SimpleAdapter 用来绑定在xml中定义的控件和对应的数据 16 SimpleCursorAdapter:用来绑定游标得到的数据 17 BaseAdapter 通用的基础适配器 18 19 20 21 * 22 * */ 23 public class SimpleAdapter_test extends Activity { 24 25 private ListView listview; 26 private int[] ids=new int[]{ 27 R.drawable.s1, 28 R.drawable.s2, 29 R.drawable.s3, 30 R.drawable.s4, 31 R

使用Adapter为ListView提供数据(其一)

送分小仙女□ 提交于 2020-02-10 02:56:45
通常我们需要展示一些列表集合数据到手机屏幕时,通常采用ListView组件,该组件提供一些可以定制的列表展示功能,但是它需要数据源,android通过数据适配器来沟通ListView与数据源。可以充当ListView数据设配器的adapter有很多,可定制性也更加广泛。通常有如下几种: ArrayAdapter SimpleAdapter CursorAdapter ,他们都来继承自BaseAdapter。 结构 继承关系 public interface ListAdapter extends Adapter android.widget.ListAdapter 子类及间接子类 直接子类 ArrayAdapter<T>, BaseAdapter, CursorAdapter, HeaderViewListAdapter, ResourceCursorAdapter, SimpleAdapter, SimpleCursorAdapter, WrapperListAdapter 从上述可以知道,ListView需要的是继承自ListAdapter接口的类,也可以知道它的一些子类是我们需要讲到的,现在开始 现在我们首先采用ArrayAdapter,ArrayAdapter<T> 它接受一个泛型对象。在这里我们可以使用String类型,用来表示文字吧。 我们提供字符串数组作为数据源

Android ListView使用BaseAdapter与ListView的优化 (转至 http://www.open-open.com/lib/view/open1339485728006.html)

走远了吗. 提交于 2020-02-10 02:54:29
在 ListView 的使用中,有时候还需要在里面加入按钮等控件,实现单独的操作。也就是说,这个 ListView 不再只是展示数据,也不仅仅是这一行要来处理用户的操作,而是里面的控件要获得用户的焦点。读者可以试试用 SimpleAdapter 添加一个按钮到 ListView 的条目中,会发现可以添加,但是却无法获得焦点,点击操作被 ListView 的 Item 所覆盖。这时候最方便的方法就是使用灵活的适配器 BaseAdapter 了。 ▲ 图 4-35 BaseAdapter 中的方法 使用 BaseAdapter 必须写一个类继承它,同时 BaseAdapter 是一个抽象类,继承它必须实现它的方法。 BaseAdapter 的灵活性就在于它要重写很多方法,看一下有哪些方法,如图 4-35 所示为继承自 BaseAdapter 的 SpeechListAdapter 所实现的方法,其中最重要的即为 getView() 方法。这些方法都有什么作用呢?我们通过分析 ListView 的原理来为读者解答。 当系统开始绘制 ListView 的时候,首先调用 getCount() 方法。得到它的返回值,即 ListView 的长度。然后系统调用 getView() 方法,根据这个长度逐一绘制 ListView 的每一行。也就是说,如果让 getCount() 返回 1

Android ListView使用BaseAdapter与ListView的优化

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-10 02:51:47
在 ListView 的使用中,有时候还需要在里面加入按钮等控件,实现单独的操作。也就是说,这个 ListView 不再只是展示数据,也不仅仅是这一行要来处理用户的操作,而是里面的控件要获得用户的焦点。读者可以试试用 SimpleAdapter 添加一个按钮到 ListView 的条目中,会发现可以添加,但是却无法获得焦点,点击操作被 ListView 的 Item 所覆盖。这时候最方便的方法就是使用灵活的适配器 BaseAdapter 了。 ▲ 图 4-35 BaseAdapter 中的方法 使用 BaseAdapter 必须写一个类继承它,同时 BaseAdapter 是一个抽象类,继承它必须实现它的方法。 BaseAdapter 的灵活性就在于它要重写很多方法,看一下有哪些方法,如图 4-35 所示为继承自 BaseAdapter 的 SpeechListAdapter 所实现的方法,其中最重要的即为 getView() 方法。这些方法都有什么作用呢?我们通过分析 ListView 的原理来为读者解答。 当系统开始绘制 ListView 的时候,首先调用 getCount() 方法。得到它的返回值,即 ListView 的长度。然后系统调用 getView() 方法,根据这个长度逐一绘制 ListView 的每一行。也就是说,如果让 getCount() 返回 1

Android ListView使用BaseAdapter与ListView的优化

和自甴很熟 提交于 2020-02-10 02:46:49
编辑器加载中...在ListView的使用中,有时候还需要在里面加入按钮等控件,实现单独的操作。也就是说,这个ListView不再只是展示数据,也不仅仅是这一行要来处理用户的操作,而是里面的控件要获得用户的焦点。读者可以试试用SimpleAdapter添加一个按钮到ListView的条目中,会发现可以添加,但是却无法获得焦点,点击操作被ListView的Item所覆盖。这时候最方便的方法就是使用灵活的适配器BaseAdapter了。 ▲图4-35 BaseAdapter中的方法 使用BaseAdapter必须写一个类继承它,同时BaseAdapter是一个抽象类,继承它必须实现它的方法。BaseAdapter的灵活性就在于它要重写很多方法,看一下有哪些方法,如图4-35所示为继承自BaseAdapter的SpeechListAdapter所实现的方法,其中最重要的即为getView()方法。这些方法都有什么作用呢?我们通过分析ListView的原理来为读者解答。 当系统开始绘制ListView的时候,首先调用getCount()方法。得到它的返回值,即ListView的长度。然后系统调用getView()方法,根据这个长度逐一绘制ListView的每一行。也就是说,如果让getCount()返回1,那么只显示一行。而getItem()和getItemId(

Android ListView使用BaseAdapter与ListView的优化

跟風遠走 提交于 2020-02-10 02:15:11
在ListView的使用中,有时候还需要在里面加入按钮等控件,实现单独的操作。也就是说,这个ListView不再只是展示数据,也不仅仅是这一行要来处理用户的操作,而是里面的控件要获得用户的焦点。读者可以试试用SimpleAdapter添加一个按钮到ListView的条目中,会发现可以添加,但是却无法获得焦点,点击操作被ListView的Item所覆盖。这时候最方便的方法就是使用灵活的适配器BaseAdapter了。 ▲图4-35 BaseAdapter中的方法 使用BaseAdapter必须写一个类继承它,同时BaseAdapter是一个抽象类,继承它必须实现它的方法。BaseAdapter的灵活性就在于它要重写很多方法,看一下有哪些方法,如图4-35所示为继承自BaseAdapter的SpeechListAdapter所实现的方法,其中最重要的即为getView()方法。这些方法都有什么作用呢?我们通过分析ListView的原理来为读者解答。 当系统开始绘制ListView的时候,首先调用getCount()方法。得到它的返回值,即ListView的长度。然后系统调用getView()方法,根据这个长度逐一绘制ListView的每一行。也就是说,如果让getCount()返回1,那么只显示一行。而getItem()和getItemId(