一起学android之SimpleAdapter使用(13)
来源:程序员人生 发布时间:2015-01-06 08:07:42 阅读次数:2344次
SimpleAdapter:将List集合的多个对象包装成列表项。
我们可以通过SimpleAdapter来实现1些复杂的列表,请看以下实例:
simpleadapter_list布局文件:
<span style="font-size:18px;"><?xml version="1.0" encoding="utf⑻"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/lv_simpleadapter"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout></span>
simpleadapter布局文件:用于显示列表项的组件
<span style="font-size:18px;"><?xml version="1.0" encoding="utf⑻"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/ll_top"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_image"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/a5i"
android:layout_gravity="center"/>
<LinearLayout
android:id="@+id/ll_right"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="4dp">
<TextView
android:id="@+id/tv_title"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="20sp"
android:text="AS"/>
<TextView
android:id="@+id/tv_des"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="13sp"
android:text="AS"
/>
</LinearLayout>
</LinearLayout>
</RelativeLayout></span>
SimpleAdapterTest主文件:
<span style="font-size:18px;">public class SimpleAdapterTest extends Activity {
int[] images = new int[] { R.drawable.a5i, R.drawable.a5j, R.drawable.a5k };
String[] titles = new String[] { "电话", "QQ", "联系人" };
String[] des = new String[] { "当前无电话记录", "当前无QQ聊天记录", "最近无联系人" };
private ListView lv_simple;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simpleadapter_list);
initView();
setData();
}
private void initView() {
lv_simple = (ListView) findViewById(R.id.lv_simpleadapter);
lv_simple.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(SimpleAdapterTest.this, titles[position],
Toast.LENGTH_SHORT).show();
}
});
}
private void setData() {
// 创建数据源
List<HashMap<String, Object>> listItems = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < titles.length; i++) {
// 每一个列表项的内容
HashMap<String, Object> listItem = new HashMap<String, Object>();
listItem.put("image", images[i]);
listItem.put("title", titles[i]);
listItem.put("desc", des[i]);
listItems.add(listItem);
}
/*
* SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
* 参数说明:
* context:全部利用的上下文。
* data:是List<? extends Map<String, ?>>的集合对象,其中每一个Map<String, ?>代表每列的列表项内容。
* resource:界面布局文件的ID。
* from:String[]类型的参数,指定了Map<String, ?>中的每一个key对应的value来生成列表项。
* to:int[]类型的参数,显示每一个列表项显示的组件。
*/
SimpleAdapter simpleAdapter = new SimpleAdapter(SimpleAdapterTest.this,
listItems, R.layout.simpleadapter, new String[] { "image",
"title", "desc" }, new int[] { R.id.iv_image,
R.id.tv_title, R.id.tv_des });
//绑定适配器
lv_simple.setAdapter(simpleAdapter);
}
}</span>
转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/42361041 情绪控_
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠