一、ArrayAdapter
/**
* ArrayAdapter<String>的使用
*/
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView listView = (ListView)findViewById(R.id.list);
//第一步:找到用来填充的数据源,可以从数据库或者文件中读取
String[] arr = {"AAA","BBB","CCC"};
//第二步:new 一个ArrayAdapter出来,三个参数分别是当前Activity的上下文,填充的样式(可用系统自带的,也用自定义的布局文件),数据源
ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_Item_1, arr);
//将adapter绑定到listView中
listView.setAdapter(mAdapter);
}
二、SimpleAdapter
/**
* SimpleAdapter的使用
*/
public class SimpleAdapterlist extends ListActivity{
//注意:这里继承ListAcitivity时,布局文件应包含一个id为“@+id/android:list”的listView
private String[] names = new String[]{"刘","张","黎","郭"};
private int[] imgIds = new Int[]{R.drawable.header01,R.drawable.header02,R.drawable.header03,R.drawable.header04};
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//创建一个list链表
List<Map<String,Object>> listItems = new ArrayList<Map<String , Object>>();
for(int i=0; i<names.length; i++){
Map<String , Object> item = new HashMap<String , Object>();
item.put("header",imgIds[i]);
item.put("name",names[i]);
listItem.add(item);
}
SimpleAdapter madapter = new SimpleAdapter(this, listItems, R.layout.main, new String[]{"header","name"}, new int[]{"R.id.header","R.id.name"});
//四个参数说明:第一个上下文, 第二个使用该adapter 的布局文件的id , 第三个是from ,即数据来源,第四个是to ,即把数据填充到哪些控件进行显示
setListAdapter(madapter);
}
}
三、BaseAdapter
/**
* BaseAdapter的使用
*/
private class MyAdapter extends BaseAdapter{
private LayoutInflater mInflater;
public MyAdapter(Context context){
this.mInflater = LayoutInflater.from(context);
}
.
.此处省略一些重写的方法
.
public View getView(final int position, View convertView, ViewGroup parent){
ViewHold holder = null;
if(convertView == null){
holder = new ViewHolder();
convertView = mInflater.inflater(R.laout.item, null);
holder.title = (TextView)convertView.findViewById(...);
holder.text = (TextView)convertView.findViewById(...);
holder.btn = (Button)convertView.findViewById(...);
convertView.setTag(holder);//绑定ViewHolder对象
}else{
holder = (ViewHolder)convertView.getTag();
}
//设置TextView 显示的内容, 即我们存放在动态数组中的数据
holder.title.setText(getData().get(position).get("ItemTitle").toString());
holder.title.setText(getData().get(position).get("ItemText").toString());
holder.btn.setOnClickListener(new OnClickListener(){
pulbic void onClick(View view){....}
});
return convertView;
}
}
public final class ViewHolder{
public TextView title;
public TextView text;
public Button btn;
}
//另注:在getView()方法里添加一更新View的方法
public void remove(int position){
mAppList.remove(position);
this.notifyDataSetChanged();
}
最后,还有个CursorAdapter,以后用到时再补充。