您的位置:首页 > 移动开发 > Android开发

ListView SimpleAdapter

2013-11-18 15:43 302 查看
simpleAdapter的构造函数 如下:

SimpleAdapter(Context context, List <? extends Map <String, ?>> data, int resource, String[] from, int[] to)

Context context,就是当前的上下文通常写this,Map <String, ?>> data,就是要绑定的数据,而resource参数值就指定的ListView的列表项的布局。from参数Map对象的key,而to表示组件的id,例如,本例中的参数值为from = new String[]{"姓名", "性别"},to =
new int[]{R.id.text1,R.id.text2}。意思就是将Map对象中key为姓名的value绑定到R.id.text1上,是将Map对象中key为性别的value绑定到R.id.text2上。ListView显示时是分行显示,每一个List元素显示为一行,每行显示一个Map元素(不是整个Map)的Value.
示例代码:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//创建ListView
ListView listView = new ListView(this);
//创建SimpleAdapter
List<Map<String,String>> data = new ArrayList<Map<String,String>>();//泛型Map<String,String>前后要一致,也可都用HashMap
Map<String, String> item1 = new HashMap<String, String>();
Map<String, String> item2 = new HashMap<String, String>();
item1.put("姓名", "张三");
item1.put("性别", "男");
data.add(item1);
item2.put("姓名","李四");
item2.put("性别", "女");
data.add(item2);
//实例SimpleAdapter
//R.layout.simple_list_item_2为系统提供布局,_1在使用适配器时,只需要提供一个 文本类型的数据,_2需要两个
//R.id.text1,R.id.text2也是系统提供的,R不是gen中的R.java,而是android.R,使用时需添加此包
//实例adapter
SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.simple_expandable_list_item_2,//如图,每个ListView元素                                                                                                            //中有两项,每一项显示为一行
new String[]{"姓名", "性别"},//每行显示的值对应的键
new int[]{R.id.text1, R.id.text2});//系统提供组件,显示与from中键对应的值

listView.setAdapter(adapter);
setContentView(listView);//注意是listView
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息