android中listview控件可以说是非常重要的控件,几乎每一个应用都会使用到它,例如游戏中的积分榜,音乐播放列表。但是,重要就意味着使用起来会有点繁琐,今天就来总结一下listview的使用步骤吧。

首先,使用listview要明确三个要素:

1.数据

2.适配器adapter

3.listview

然后,根据适配器的种类,我们可以把listview分成三种,有ArrayAdapter,SimpleAdapter和SimpleCursorAdapter,而最后一种是专门与数据库连接用的,今天先不讨论。

1.arrayadapter,这种是最简单的,不仅操作简单,显示也最简单。我们只需指定一个string数组就可以了,代码如下:

ListView buttonListView = (ListView)this.findViewById(R.id.typeListView);String[] buttonArr = { mContext.getString(R.string.free_note),mContext.getString(R.string.line_note),mContext.getString(R.string.rect_note),mContext.getString(R.string.triangle_note),mContext.getString(R.string.round_note),mContext.getString(R.string.highlight_note) };ArrayAdapter arrayAdapter = new ArrayAdapter(mContext,android.R.layout.simple_expandable_list_item_1, buttonArr);buttonListView.setAdapter(arrayAdapter);


2.simpleAdapter,这是使用最多的方式,因为你可以订制每个item的样式,较为繁琐。

步骤如下:

(1)创建一个List>实例,再往该list里面添加一个个的HashMap,这个就是listview所有的数据,代码如下:

final List> filterItems = new ArrayList>();Map filterItem = new HashMap();
filterItem.put("filterName", "TAG");filterItem.put("filterValue",getResources().getString(R.string.choose_note_tag));filterItems.add(filterItem);
……

(2)创建simpleAdapter实例,为其制定数据和每个item的样式,这一步最为重要,代码如下:

SimpleAdapter simpleAdapter = new SimpleAdapter(this, filterItems,R.layout.filter_item, new String[] { "filterName","filterValue" }, new int[] { R.id.filterName,R.id.filterValue });
现在讲一下构造函数里面每个参数的含义吧:第一个是context,与一般的view一样,第二个是List,就是listview的数据项,第三个是item对应的布局文件,第四个是item中所有key的数组,第五个是item对应布局文件所有控件id的数组,必须与第四个参数一一对应。R.layout.filter_item布局文件如下:
<?xml version="1.0" encoding="utf-8"?>        
(3)最后,肯定是为Listview绑定adapter并显示,代码如下:
filterListView.setAdapter(simpleAdapter);
至此,listview的显示就完成了。

下面讲一下listview的事件响应,有itemlongclick和itemclick,大同小异,这里主要讲itemclick。

很简单添加监听器就ok了,但要记住onitemclick每个参数的意义,代码如下:

filterListView.setOnItemClickListener(new OnItemClickListener() {/** * arg0 noteListView的指针,可以通过它获取listview所有信息 arg1 * 点击的item的view的指针,可以获取item的id arg2 item的位置 arg3 * item在listview中的第几行,通常与arg2相同 */public void onItemClick(AdapterView<?> arg0, final View arg1,int arg2, long arg3) {
}
最后,我们要注意,如果在onitemclick中修改listview某个item,一定要记住要修改adapter指定的list,不然如果屏幕朝向改变时,listview会重新绑定一次adapter,会造成显示原来的内容。

更多相关文章

  1. [自定义控件]android自定义view实战之太极图
  2. Android的FrameLayout使用要注意的问题
  3. react-native webView android使用本地html问题
  4. 从头到尾给你讲明白Android(安卓)View实现原理
  5. Android(安卓)Audio代码分析26 - Audio Strategy
  6. Android(安卓)TableLayout 属性含义
  7. android当中的xml没有代码提示功能解决办法
  8. [置顶] Android(安卓)实现 WheelView
  9. Android(安卓)OpenGL ES 分析与实践

随机推荐

  1. 如何将多行数据插入到一个表字段中
  2. 从文本文件中读取,然后决定是否要在php中
  3. 我的includes / header.php中的引用CSS文
  4. thinkphp执行删除操作然后成功success后
  5. 从数组中回显键和值
  6. 架构比MVC更适合Web应用程序?
  7. PHP中 应该如何写 无符号右移
  8. php删除指定目录下的的文件/文件夹-用PHP
  9. 或者不使用Laravel的有说服力的关系查询
  10. thinkphp3.2【空操作和空控制器使用】