Android开发经验总结——ListView的使用
Android中ListView这个组件比较常用,但对初学者来说,又比较难掌握,在此分享一下我的使用经验。
ListView是以列表的形式展示数据,这里面有三个要素:数据、视图、适配器。
常用的适配器有三种:ArrayAdapter, SimpleAdapter, SimpleCursorAdapter。
其中SimpleAdapter扩展性最好,几乎能实现所有展示需求的列表,我在实际开发中用的全是这个,这里也只介绍这个。
假设要实现如下效果的列表视图:

下面一步步来实现。
首先设计视图,主要设计ListView里面item的显示效果,在layout中创建item.xml文件,如下:
此xml文件定义列表中每个项目的布局,如果想要不同的布局,修改此文件的布局即可。
这个文件中给每个需要在程序中动态赋值的地方都取了id,看到后面的代码时,注意对应关系。
?
然后是适配器和数据,这两个联系比较紧密,就放一起了。
先上代码:
mAdapter = new SimpleAdapter(this, pictureList, R.layout.picturelist, mFrom, mTo){@Override public View getView(final int position, View convertView, ViewGroup parent) {View view = super.getView(position, convertView, parent);@SuppressWarnings("unchecked")final HashMap<String,Object> map = (HashMap<String, Object>) this.getItem(position);ImageView imageView = (ImageView)view.findViewById(R.id.img);FileInputStream fin;try {if(map.get("img") == null){throw new IOException();}fin = getApplicationContext().openFileInput((String) map.get("img"));imageView.setImageDrawable(Drawable.createFromStream(fin, "src"));fin.close();} catch (FileNotFoundException e) {imageView.setImageResource(R.drawable.default);} catch (IOException e) {imageView.setImageResource(R.drawable.default);}return view;}};?好了,就到这里了。
注:此博客参加“Google 暑期大学生博客分享大赛 - 2011 Android 成长篇”