android, new SimpleAdapter(....).....这里的定义是什么意思啊??求大神解释下

SimpleAdapter adapter = new SimpleAdapter(this, listItems,
R.layout.items, new String[] { "title", "image" }, new int[] {
R.id.title, R.id.image }); // 创建SimpleAdapter
//SimpleAdapter(Context context, List<? extends Map<String,?>> data, int resource, String[] from, int[] to)

new SimpleAdapter(...)里的定义意思:

第 1 个参数:是一个Context对象,它代表了访问整个Android应用的接口。


第 2 个参数:该参数应该是一个List<? extends Map<String,?>>类型集合的对象,该集合中每个Map<String,?> 对象生成一个列表项。


第 3 个参数:该参数指定一个界面布局的ID。例如此处指定了R.layout.simple_item,这意味着使用/res/layout/simple_item.xml(需自己创建布局文件)文件作为列表项组件。


第 4 个参数:该参数应该是一个String[]类型的参数,该参数决定提取Map<String,?>对象中哪些key对应的value来生成列表项。


第 5 个参数:该参数应该是一个int[]类型的参数,该参数决定填充哪些组件(参数3上面的布局文件中的组件ID)。


代码示例

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 SimpleAdapterTest extends Activity {

private String[] names = new String[] { "张三", "李四", "王五", "赵六" };
private String[] descs = new String[] { "一个农民", "一个长工", "一个混混", "一个捕快" };
private int[] imageIds = new int[] { R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher };

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建一个List集合,List集合的元素是Map
List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();
for (int i = 0; i < names.length; i++) {
Map<String, Object> listItem = new HashMap<String, Object>();
listItem.put("header", imageIds[i]);
listItem.put("personName", names[i]);
listItem.put("desc", descs[i]);
listItems.add(listItem);
// 创建一个SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter(this, listItems,
R.layout.simple_item, new String[] { "", "", "" },
new int[] { R.id.name, R.id.header, R.id.desc });
ListView listView = (ListView) findViewById(R.id.mylistView);
// 为ListView设置Adapter
listView.setAdapter(simpleAdapter);
}
}

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-08-28
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对应

SimpleAdapter可以使用自定义的ListView,然后setContentView即可。也可以直接使用系统自带的ListAcitivity,该ListActivity实现了ListView,显示ListView的时候做了很多优化。
ListActivity直接extends ListActivity即可,不需要在setContentView了
第2个回答  2015-08-28
1 上下文,绝大多数情况下是某个activity
2 列表数据是一个key为string类型,value任意类型的map组成的list
例如:[{"title": "hello", "image": 某图片}, {"title": "world", "b": 另一个图片}, ...]
3 列表item的布局文件
4 适配器映射的from端值,是一个String数组,数组的元素要和2中的key对应,例如本例应该是
new String[]{"title", "image"};
5 对应的布局元素id,id必须在参数3的布局文件中存在,并且和2中的每个map是对应关系
即R.id.title对于的textview,使用2中每一行的"title"对应的value
而R.id.image,使用2中每一行的"image"对应的value本回答被网友采纳

android, new SimpleAdapter(...)...这里的定义是什么意思啊??求大 ...
new SimpleAdapter(...)里的定义意思:第 1 个参数:是一个Context对象,它代表了访问整个Android应用的接口。第 2 个参数:该参数应该是一个List<? extends Map<String,?>>类型集合的对象,该集合中每个Map<String,?> 对象生成一个列表项。第 3 个参数:该参数指定一个界面布局的ID。例如此处指定...

SimpleAdapter adapter=new SimpleAdapter( context,data,resource,from...
第一个context,很明显大家根据英文可以知道是上下文的意思,它官方的意思是:SimpleAdapter所要运行关联到的视图,这个是什么呢?就是你这个SimpleAdapter所在的Activity(一般而言),所以这个参数一般是“前Activity的名字.this”第二个是一个泛型只要是一个List就行,这一般会想到是ArrayList,而他内部存储的...

Android适配器Adapter问题,求大神解惑???
data就是你的数据,比如里面是 很多过map, 每个map会有key,value resource 就是你用来装载数据的xml配置的布局 比如R.layout.list_layout from 则是你的map里面的key,to 则是你的 xml里面定义的控件 比如是某个textview

android中关于SimpleAdapter的问题 这里面for循环中的循环条件File fil...
files是一个文件数组,File file:files的意思是每次循环都将数组中的文件对象赋给file这个变量,然后再在循环体中对这个变量进行操作。它相当于如下转换形式:File file;for(int i=0;i<files.length;i++){ file = files[i];……}

android listview怎么用
SimpleAdapter mSimpleAdapter = new SimpleAdapter(this,listItem,\/\/需要绑定的数据 R.layout.item,\/\/每一行的布局\/\/动态数组中的数据源的键对应到定义布局的View中new String[] {"ItemImage","ItemTitle", "ItemText"}, newint[] {R.id.ItemImage,R.id.ItemTitle,R.id.ItemText} );lv.setAdapter(mSim...

android开发中怎样获取spinner选中的内容?
1、获取选中值要通过spinner的setOnItemSelectedListener()事件来操作,根据spinner绑定值的方式的不一样,获取选中值的方式略有不同。2、如果没有用实体层绑定数据的话,诸如通过SimpleAdapter adapter = new SimpleAdapter(HRInputBase_Activity.this, items, R.layout.sp_item,new String[] { "text", ...

android 中listview是怎么用的
2.适配器 用来把数据映射到ListView上的中介。3.数据 具体的将被映射的字符串,图片,或者基本组件。根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter 其中以ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各种效果。SimpleCursorAdapter...

自定义listview数据源adapter时可以继承的类有哪些
SimpleAdapter使用起来非常方便而且简单,使用SimpleAdapter需要先保存数据,然后保存的数据再通过与写的XML文件中的ID进行绑定即可显示在界面。List<HashMap<String, Object>> personList ;\/\/list中存放的是map 而map中每个key是属性名称,value是person中的属性值 personList = new ArrayList<HashMap<...

安卓 调整listview行的宽度
SimpleAdapter adapter = new SimpleAdapter(this, list,R.layout.quick_item, new String[] { "name" },new int[] { R.id.barCodeTextView });其中"R.layout.quick_item"就是自己写的xml配置文件 BaseAdapter 就在对应的的Adapter中引入自定义布局文件,大概像这样 LayoutInflater mInflater = ...

Android 适配器Adapter问题 求大神解答啊
继承BaseAdapter自定义

相似回答