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

SimpleAdapter的简单使用

2016-03-04 17:27 441 查看
平时一直使用BaseAdapter进行ListView 的适配,但是最近接触到一些SimpleAdapter的使用,下面将自己的使用心得记下来

SimpleAdapter是扩展性最好的适配器,可以定义各种你想要的布局,而且使用很方便

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

参数context:上下文,比如this。关联SimpleAdapter运行的视图上下文

参数data:Map列表,列表要显示的数据,这部分需要自己实现,如例子中的getData(),类型要与上面的一致,每条项目要与from中指定条目一致

参数resource:ListView单项布局文件的Id,这个布局就是你自定义的布局了,你想显示什么样子的布局都在这个布局中。这个布局中必须包括了to中定义的控件id

参数 from:一个被添加到Map上关联每一个项目列名称的列表,数组里面是列名称

参数 to:是一个int数组,数组里面的id是自定义布局中各个控件的id,需要与上面的from对应

简单理解就是:我们将一些Map<String,Object> map 放到List里面,然后将map里面的值放到item布局文件相应的位置,使用起来比较简单:

首先我先写一个item文件,里面只放一个TextView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="条目" />

</LinearLayout>下面是Java代码

package com.example.listviewdemo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class MainActivity extends Activity {

private List<Map<String, Object>> list;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = (ListView) findViewById(R.id.listView);
initData();
SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(),
list, R.layout.item_one, new String[] { "name" },
new int[] { R.id.name });
listView.setAdapter(adapter);
}

private void initData() {
Map<String, Object> map;
list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < 10; i++) {
map = new HashMap<String, Object>();
map.put("name", "value" + i);
list.add(map);
}
}

}
这样就基本完成了简单的效果。欢迎大家探讨。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android SimpleAdapte