关于 SimpleAdapter 适配器

adapter

适配器,重在适配二字。

 意思就是将一个东西通过一种方式放到(绑定)到另一个物体上,起初可能这两个物体不能很好的兼容。


在android 里面也有关于适配器的内容,


主要有ArrayAdapter,SimpleAdapter,BaseAdapter,SimpleCursorAdapter.


这里先记录前两个。


ArrayAdapter,数组适配器,


 ArrayAdapter(context, resource, textViewResourceId);


解释:T是数组里面的类型,context ,是上下文,通常是this ,resource 是适配器的数据显示样式(以资源文件存储),

textViewResourceId ,就是数据,是要放到适配器中的数据。


用法:

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, getdata());//getdata() 是获取数据的方法,这里的返回类型是String的数组。


通过 需要适配器添加数据的 控件提供的方法,添加适配器到控件上面。


SimpleAdapter,名字上,simpe,虽然是可以称为简单,但是正是因为它的简答,才使得它有较好扩展性。

他可以适配数据有,图片,按钮,复选框等。

通常与ListView同用。


原型:SimpleAdapter mAdapter = new SimpleAdapter(context, data, resource, from, to);


解释:context ,为上下文,表示的是那个activity ,关于这个context ,详细参见:点击打开链接

data,是指要放入适配器中的数据,通常以函数(方法)的调用得到。

resource 还是指样式。

from ,to ,,是指把××数据放大××地方(控件)。,可以将一个文本放到TextView 控件里,也可以将一个图片放到一个ImageView控件里。通常是以字符数组表示key,去取value.      以整型数组作为地址序列,表示位置。

这里指控件的位置。


关于数据,是List 里存放的是HashMap的对象。用到了C++中称为模板,或泛型的东西。


关于 SimpleAdapter 适配器_第1张图片


具体用法,如代码。

	
	ListView mListView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.test);
		
	mListView = (ListView) findViewById(R.id.lv);
	
		SimpleAdapter mSimpleAdapter = new SimpleAdapter(
				this, 
				getData(),
				R.layout.simple_style, 
				new String[]{"image","name","button"},
				new int[]{R.id.image,R.id.match_name_view,R.id.baoming_button} );
		
		mListView.setAdapter(mSimpleAdapter);
//				setListAdapter(mSimpleAdapter);
		
		
		ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, getdata());
		new ArrayAdapter(context, resource, textViewResourceId);
		
		SimpleAdapter mAdapter = new SimpleAdapter(context, data, resource, from, to)
	}

	private List> getData() {
		// TODO Auto-generated method stub
		List> maps = new ArrayList>();
		
		
		for(int i =0;i<10; i++)
		{
			HashMap hmMap = new HashMap();
			hmMap.put("image", R.drawable.ic_launcher);
			hmMap.put("name", "match_name"+i);
			hmMap.put("button",R.layout.my_button);
			maps.add(hmMap);
		}
		return maps;
	}

注意String数组中的key与容器中的对应。








你可能感兴趣的:(android)