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 的使用
最新推荐文章于 2023-03-17 17:48:46 发布