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 }