Android中的布局控件主要分为简单控件和复杂控件两种,而其中ListView 由于其用法较为复杂抽象,也是学习Android界面编程的一大难点,下面笔者就以多年的开发经验讲解一下ListView 中SimpleAdapter的用法。
由上图可以看出,Listview就像一个ArrayList,里面用adapter来填充,事实上ArrayList在ListView中扮演了重要角色。
SimpleAdapter使用详解
首先我们需要新建一个ListView,在xml文件中,在此不再赘述过程。
对于使用ListView,主要分为三点:
1.处理数据,我们需要将要放置的数据进行处理,以便在ListView中使用。
2.得到adapter。
3.填充到ListView中。
以下我将结合示例代码讲解。
1.处理数据
由于数据是变化多样的,而ListView中只能存储特定格式的,所以我们要对数据进行处理
ListView中的数据以ArrayList<HashMap<String,String>>的格式来存储。看起来是不是很复杂又很熟悉,没错,这就是ArrayList与HashMap的结合体,每一个ArrayList元素是一个HashMap,其中HashMap的key以及value需要为String类型。有了这样的理论基础我们就可以开始写示例了,下面我将模拟手机通讯录,号码由随机数产生
以上为数据处理函数,处理的数据变为ArrayList<HashMap<String,String>>类型,第一步结束。
2.得到adapter
此步骤使用系统提供的SimpleAdapter完成
SimpleAdapter sa = new SimpleAdapter(SimpleAdapterActivity.this,
list,
R.layout.item_line2,
new String[]{"name","phonenumber"},
new int[]{R.id.name,R.id.number});
五个参数分别代表:当前上下文,处理好的list,子布局,HashMap中的key,子布局id.
ListView就像一个容器,划分了好多空间,每一块空间如何使用,就需要子布局,由于我要放置姓名手机号,所以使用两个TextView。
那么为何要将子布局id输入呢,此处和第四个参数有关联,系统会把对应key的value值放在对应的子布局上,也就是将数据放到指定地点。
3.放置adapter
此处lv为ListView实例,调用setAdapter方法。
lv.setAdapter(sa);
以上就是SimpleAdapter的使用方法,那么如何监听SimpleAdapter呢,可以使用setOnItemClickListener方法
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
/ / TODO Auto-generated method stub
Toast.makeText(SimpleAdapterActivity.this, arg2 + " ",Toast.LENGTH_SHORT).show();
}
});
其中arg2参数代表单击的ListView中的行位置。
以上就是SimpleAdapter的使用方法,BaseAdapter将会稍后介绍。敬请期待