1、ArrayAdapter ----- 只可以与TextView绑定
A. extends ListActivity
使用listView = getListView();时,ListView控件的id要设置为@android:id/list
B. 绑定数据适配器
ArrayAdapter<String> data = new ArrayAdapter<String>(.this, R.layout.xxx);
使用item的布局文件创建Adapter
C. listView.setAdapter(data);
将Adapter输入ListView中
D. listView.setOnItemClickListener(); //点击事件
listView.setOnItemLongClickListener(); //长点击事件
2、SimpleAdapter ----- 针对TextView、ImageView、CheckBox
A. ArrayList<HashMap<String, Object>> items = new ArrayList<HashMap<String,Object>>();
B. for (int i=0; i<count; i++) {
HashMap<String, Object> hm = new HashMap<String, Object>;
hm.put...
Items.add(hm);
}
C. SimpleAdapter(this, items, R.layout.xxx, String[] keys, int[] ids);
D. this.setAdapter(items);
3、BaseAdapter ----- 自定义Adapter
lv = getListView();
ArrayList <HashMap<String, Object>> al = new ArrayList <HashMap<String, Object>>();
HashMap<String, Object> hm = new HashMap<String, Object>();
hm.put("image", R.drawable.terminater);
hm.put("name", "机器人");
hm.put("owner", "DREAM");
hm.put("score", "1星");
hm.put("rating", "1");
al.add(hm);
hm = new HashMap<String, Object>();
hm.put("image", R.drawable.calendar);
hm.put("name", "DOTA");
hm.put("owner", "DREAM");
hm.put("score", "5星");
hm.put("rating", "5");
al.add(hm);
hm = new HashMap<String, Object>();
hm.put("image", R.drawable.brick);
hm.put("name", "WAR3");
hm.put("owner", "DREAM");
hm.put("score", "3星");
hm.put("rating", "3");
al.add(hm);
MyAdapter1 ma1 = new MyAdapter1(this, al);
lv.setAdapter(ma1);
class MyAdapter1 extends BaseAdapter{
private ArrayList <HashMap<String, Object>> mdata;
private LayoutInflater mInflater;
private Context mcontext;
public MyAdapter1(Context context, ArrayList<HashMap<String, Object>> data) {
mdata = data;
mcontext = context;
mInflater = (LayoutInflater)mcontext.getSystemService(LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mdata.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return mdata.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Holder h;
if(convertView == null) {
convertView = mInflater.inflate(R.layout.myadapterdemo1, null);
h = new Holder();
h.image = (ImageView)convertView.findViewById(R.id.image);
h.name = (TextView)convertView.findViewById(R.id.name);
h.owner = (TextView)convertView.findViewById(R.id.owner);
h.rating = (RatingBar)convertView.findViewById(R.id.rating);
h.score = (TextView)convertView.findViewById(R.id.score);
convertView.setTag(h);
} else {
h = (Holder)convertView.getTag();
}
h.image.setBackgroundResource(Integer.parseInt(mdata.get(position).get("image").toString()));
h.name.setText(mdata.get(position).get("name").toString());
h.owner.setText(mdata.get(position).get("owner").toString());
h.rating.setRating(Integer.parseInt(mdata.get(position).get("rating").toString()));
h.score.setText(mdata.get(position).get("score").toString());
return convertView;
}
}
class Holder {
ImageView image;
TextView name;
TextView owner;
RatingBar rating;
TextView score;
}