BaseAdapter优化

来源:互联网 发布:js this指向问题 编辑:程序博客网 时间:2024/05/24 08:34
public class MyBaseAdapter extends BaseAdapter {List<Map<String, Object>> alllines = null;Context context;public MyBaseAdapter(Context context,List<Map<String, Object>> alllines) {this.alllines = alllines;this.context = context;}@Overridepublic int getCount() {return alllines.size();}//获取子试图封装的对象@Overridepublic Object getItem(int position) {return position;}@Overridepublic long getItemId(int position) {return position;}//android系统负责调用生成子试图//第二个参数:子视图,第三个参数:高级组件本身@Overridepublic View getView(int position, View convertView, ViewGroup parent) {/** * 1.加载子视图布局文件 * 2.组件实例中添加数据 * 3.添加监听器,重写事件处理方法 *///Listview优化MyViewHolder mvh = new MyViewHolder();if(convertView == null){convertView = LayoutInflater.from(context).inflate(R.layout.subview, null);mvh.imageView = (ImageView) convertView.findViewById(R.id.iv_news);mvh.textView = (TextView) convertView.findViewById(R.id.tv_content);mvh.button = (Button) convertView.findViewById(R.id.bt_read);convertView.setTag(mvh);}else{mvh = (MyViewHolder) convertView.getTag();}mvh.imageView.setImageResource((Integer)alllines.get(position).get("myicon"));mvh.textView.setText(alllines.get(position).get("mycount").toString());mvh.button.setText(alllines.get(position).get("mybutton").toString());//Button必须通过外部监听器,获取int position的值mvh.button.setOnClickListener(new MyButtonListener(position, context, alllines));return convertView;}}

0 0