android ListView

ListView

ArrayAdapter

    ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)

SimpleAdapter

    SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

    resource: 子项布局
    from: keys
    to: ids
    data: get(from[i])---->to[i]

BaseAdapter


class MyAdapter extends BaseAdapter {
    
    private Context context;
    private List dataList;

    //创建ViewHolder类
    class ViewHolder{
        TextView content;
    }
    
    //构造函数需要传入两个必要的参数:上下文对象和数据源
    public MyAdapter(Context context, List dataList) {
        this.context = context;
        this.dataList = dataList;
    }
    
    //返回子项视图
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view;
        ViewHolder viewHolder;
        if(convertView==null){
            view = LayoutInflater.from(context).inflate(R.layout.item_id,null);
            viewHolder=new ViewHolder();
            viewHolder.content=(TextView) view.findViewById(R.id.item_content_id);
            view.setTag(viewHolder);
        }else{
            view=convertView;
            viewHolder= (ViewHolder) view.getTag();
        }
        
        viewHolder.content.setText(dataList.get(position));
        
        return view;
    }

    //返回子项的个数
    @Override
    public int getCount() {
        return dataList.size();
    }
    //返回子项对应的对象
    @Override
    public Object getItem(int position) {
        return dataList.get(position);
    }
    //返回子项的下标
    @Override
    public long getItemId(int position) {
        return position;
    }
}