Android ListView 和 BaseAdapter 的使用

private ArrayList<HashMap<String, Object>> getDate(){
025	ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String,Object>>();
026	/**为动态数组添加数据*/
027	for(int i=0;i<30;i++)
028	{
029	HashMap<String, Object> map = new HashMap<String, Object>();
030	map.put("ItemTitle", "第"+i+"行");
031	map.put("ItemText", "这是第"+i+"行");
032	listItem.add(map);
033	}
034	return listItem;
035	}
036	/** 新建一个类继承BaseAdapter,实现视图与数据的绑定
037	*/
038	privateclass MyAdapter extends BaseAdapter {
039	private LayoutInflater mInflater;//得到一个LayoutInfalter对象用来导入布局
040	
041	/**构造函数*/
042	public MyAdapter(Context context) {
043	this.mInflater = LayoutInflater.from(context);
044	}
045	
046	@Override
047	publicint getCount() {
048	return getDate().size();//返回数组的长度
049	}
050	
051	@Override
052	public Object getItem(int position) {
053	returnnull;
054	}
055	
056	@Override
057	publiclong getItemId(int position) {
058	return 0;
059	}
060	
061	/**书中详细解释该方法*/
062	@Override
063	public View getView(finalint position, View convertView, ViewGroup parent) {
064	ViewHolder holder;
065	//观察convertView随ListView滚动情况
066	Log.v("MyListViewBase", "getView " + position + " " + convertView);
067	if (convertView == null) {
068	convertView = mInflater.inflate(R.layout.item,null);
069	holder = new ViewHolder();
070	/**得到各个控件的对象*/
071	holder.title = (TextView) convertView.findViewById(R.id.ItemTitle);
072	holder.text = (TextView) convertView.findViewById(R.id.ItemText);
073	holder.bt = (Button) convertView.findViewById(R.id.ItemButton);
074	convertView.setTag(holder);//绑定ViewHolder对象
075	}
076	else{
077	holder = (ViewHolder)convertView.getTag();//取出ViewHolder对象
078	}
079	/**设置TextView显示的内容,即我们存放在动态数组中的数据*/
080	holder.title.setText(getDate().get(position).get("ItemTitle").toString());
081	holder.text.setText(getDate().get(position).get("ItemText").toString());
082	
083	/**为Button添加点击事件*/
084	holder.bt.setOnClickListener(new OnClickListener() {
085	@Override
086	publicvoid onClick(View v) {
087	Log.v("MyListViewBase", "你点击了按钮" + position);//打印Button的点击信息
088	}
089	});
090	
091	return convertView;
092	}
093	
094	}
095	
096	/**存放控件*/
097	publicfinalclass ViewHolder{
098	public TextView title;
099	public TextView text;
100	public Button bt;
101	}
102	}

你可能感兴趣的:(android,ListView,BaseAdapter)