适配器,重在适配二字。
意思就是将一个东西通过一种方式放到(绑定)到另一个物体上,起初可能这两个物体不能很好的兼容。
在android 里面也有关于适配器的内容,
主要有ArrayAdapter,SimpleAdapter,BaseAdapter,SimpleCursorAdapter.
这里先记录前两个。
ArrayAdapter,数组适配器,
ArrayAdapter
解释:T是数组里面的类型,context ,是上下文,通常是this ,resource 是适配器的数据显示样式(以资源文件存储),
textViewResourceId ,就是数据,是要放到适配器中的数据。
用法:
ArrayAdapter
通过 需要适配器添加数据的 控件提供的方法,添加适配器到控件上面。
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++中称为模板,或泛型的东西。
具体用法,如代码。
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;
}