概要
Android为开发者提供了很多的adapter,比较常用的就两个,一个是simpleadapter,另一个是BaseApdater,本文就介绍SimpleAdapter。
SimpleAdapter常用于GridView、ListView的显示实现,下面就介绍一下它。
概要步骤:
这里以GridView为例
1、 新建一个GridView每一行显示的布局文件gridview_row.xml
2、 在main.xml文件中添加一个GridView控件
3、 编写代码
i、 编写获取数据的函数,这里是getList(),获取的是一个List数据
ii、 构造SimpleAdapter,它的构造函数参数要注意
代码
变量定义:
private int[] images = {R.drawable.greenbutton,R.drawable.bluebutton,R.drawable.imagebutton,R.drawable.imagebuttondown};
private int[] tv1 = {R.string.image1, R.string.image2, R.string.image3, R.string.image4};
private int[] tv2 = {R.string.image1, R.string.image2, R.string.image3, R.string.image4};
核心代码:
GridView gv = (GridView) this.findViewById(R.id.gridview);
SimpleAdapter sa = new SimpleAdapter(
GridViewActivity.this, //上下文
getList(),//真正要显示的数据
R.layout.gridview_row, //每一项的布局文件
new String[]{"image", "textview1", "textview2"},
new int[]{
R.id.gridview_imageview, R.id.gridview_textview1, R.id.gridview_textview2
}
);
getList()代码:
public List extends Map
List
= new List
for(int i = 0; i < 4; i++){
HashMap
map = new HashMap
map.put("image", images[i]);
map.put("textview1", getResources().getText(tv1[i]));
map.put("textview2", getResources().getText(tv2[i]));
list.add(map);
}
return list;
}
每一项的布局文件
xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/gridview_imageview"
android:layout_width="100dip"
android:layout_height="98dip"
>ImageView>
<TextView
android:id="@+id/gridview_textview1"
android:layout_width="100dip"
android:layout_height="wrap_content"
>TextView>
<TextView
android:id="@+id/gridview_textview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>TextView>
LinearLayout>
总布局文件
xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchMode="columnWidth"
>GridView>
LinearLayout>
效果图:
本文来源:https://www.2haoxitong.net/k/doc/eff8d460a98271fe910ef9fe.html
文档为doc格式