自定义适配器继承BaseAdapter:
class GeneralAdapter extends BaseAdapter{
@Override
public int getCount() {
return mGenerals.size();
}
@Override
public GeneralBean getItem(int position) {
return mGenerals.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//拿到ListViewItem的布局,转换为View类型的对象
View layout=View.inflate(MainActivity.this, R.layout.item_generals, null);
//找到显示军事家头像的ImageView
ImageView ivThumb=(ImageView) layout.findViewById(R.id.ivThumb);
//找到显示军事家名字的TextView
TextView tvName=(TextView) layout.findViewById(R.id.tvName);
//获取军事中下标是position的军事家对象
GeneralBean bean=mGenerals.get(position);
//显示军事家头像
ivThumb.setImageResource(bean.getResid());
//显示军事家的姓名
tvName.setText(bean.getName());
return layout;
}
}
SimpleAdapter:
public class MainActivity extends Activity {
ListView mlvGenerals;
List<Map<String, Object>> mGenerals;
SimpleAdapter mAdapter;
static final String KEY_PHOTOID="photoid";
static final String KEY_NAME="name";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();//初始化数据
initView();
}
private void initView() {
mlvGenerals=(ListView) findViewById(R.id.lvGeneral);
mAdapter=new SimpleAdapter(this, mGenerals,
R.layout.item_generals,
new String[]{KEY_PHOTOID,KEY_NAME},
new int[]{R.id.ivThumb,R.id.tvName});
mlvGenerals.setAdapter(mAdapter);
}
private void initData() {
int[] resid={
R.drawable.baiqi,R.drawable.caocao,R.drawable.chengjisihan,
R.drawable.hanxin,R.drawable.lishimin,R.drawable.nuerhachi,
R.drawable.sunbin,R.drawable.sunwu,R.drawable.yuefei,
R.drawable.zhuyuanzhang
};
String[] names=getResources().getStringArray(R.array.generals);
mGenerals=new ArrayList<Map<String,Object>>();
HashMap<String, Object> general;
for (int i = 0; i < names.length; i++) {
general=new HashMap<String, Object>();
general.put(KEY_PHOTOID, resid[i]);
general.put(KEY_NAME, names[i]);
mGenerals.add(general);
}
}
ArrayAdapter:
public class MainActivity extends Activity {
ListView mlvWeek;
ArrayAdapter<CharSequence> mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
mlvWeek=(ListView) findViewById(R.id.lvWeek);
mAdapter=ArrayAdapter.createFromResource(this,
R.array.day_of_week,
android.R.layout.simple_expandable_list_item_1);
mlvWeek.setAdapter(mAdapter);
}
}