一、SimpleAdapter的参数说明
SimpleAdapter(Context context, List<? extends Map<String,
?>> data, int resource, String[] from, int[] to)
第一个参数 表示上下文
第二个参数表示生成一个Map(String ,Object)列表选项
第三个参数表示界面布局文件的ID, 表示该文件作为列表项的组件
第四个参数表示该Map对象的哪些key对应value来生成列表项
第五个参数表示来填充的组件 Map对象key对应的资源一依次填充组件 顺序有对应关系
注意的是map对象可以key可以找不到 但组件的必须要有资源填充 因为找不到key也会返回null 其实就相当于给了一个null资源
二、使用说明
布局文件一、main.xml
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context="com.ycz.simpleadapterdemo.SimpleAdapterDemo" > 10 11 <ListView 12 android:id="@+id/lv" 13 android:layout_width="fill_parent" 14 android:layout_height="fill_parent" 15 /> 16 17 </RelativeLayout>
布局文件二、item.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="horizontal" > 6 7 <ImageView 8 android:id="@+id/itemImage" 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 android:paddingLeft="10dp" /> 12 13 <LinearLayout 14 android:layout_width="match_parent" 15 android:layout_height="wrap_content" 16 android:orientation="vertical" > 17 18 <TextView 19 android:id="@+id/itemTitle" 20 android:layout_width="wrap_content" 21 android:layout_height="wrap_content" 22 android:textSize="20dp" 23 android:textColor="#f0f" 24 android:paddingLeft="10dp"/> 25 26 27 <TextView 28 android:id="@+id/itemText" 29 android:layout_width="wrap_content" 30 android:layout_height="wrap_content" 31 android:textSize="14dp" 32 android:paddingLeft="10dp"/> 33 34 </LinearLayout> 35 </LinearLayout>
程序文件、SimpleAdapterDemo.java
1 package com.ycz.simpleadapterdemo; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 6 import android.support.v7.app.ActionBarActivity; 7 import android.os.Bundle; 8 import android.widget.ListView; 9 import android.view.View; 10 import android.widget.AdapterView; 11 import android.widget.AdapterView.OnItemClickListener; 12 import android.widget.SimpleAdapter; 13 14 public class SimpleAdapterDemo extends ActionBarActivity { 15 private ListView lv; 16 @Override 17 protected void onCreate(Bundle savedInstanceState) { 18 super.onCreate(savedInstanceState); 19 setContentView(R.layout.main); 20 21 lv=(ListView)findViewById(R.id.lv); 22 //创建动态数组数据源 23 ArrayList<HashMap<String,Object>> listItem=new ArrayList<HashMap<String,Object>>(); 24 for(int i=0;i<10;i++){ 25 HashMap<String,Object> map = new HashMap<String,Object>(); 26 map.put("ItemImage", R.drawable.icon); 27 map.put("ItemTitle","第"+i+"行"); 28 map.put("ItemText", "这是第"+i+"行"); 29 listItem.add(map); 30 } 31 /* 32 *动态数组数据源中与ListItem中每个显示项对应的Key 33 *String[] source = new String[]{"ItemImage","ItemTitle","ItemText"} 34 *item.xml文件里面的一个ImageView ID和两个TextView ID 35 *int[] destination = new int[]{R.id.itemImage,R.id.itemTitle,R.id.itemText} 36 * 从动态数组数据源listItem中,取出source数组中key对应的value值,填充到destination数组中对应ID的控件中去 37 */ 38 39 40 SimpleAdapter mSimpleAdapter=new SimpleAdapter(this,listItem,R.layout.item, new String[]{}, new int[]{R.id.itemImage,R.id.itemTitle,R.id.itemText}); 41 lv.setAdapter(mSimpleAdapter); 42 lv.setOnItemClickListener(new OnItemClickListener(){ 43 @Override 44 public void onItemClick(AdapterView<?>arg0,View arg1,int arg2,long arg3){ 45 setTitle("你点击了第"+arg2+"行!"); 46 } 47 }); 48 } 49 50 }
时间: 2024-10-12 08:31:27