listview中baseadapter技巧,以及listview优化

来源:互联网 发布:linux mv命令文件夹 编辑:程序博客网 时间:2024/05/16 06:03
public view getView(int position,View converView,ViewGroup parent){MyViewHolder viewHolder = new MyViewHolder();if(converView == null){ImageView iv = converView.findviewbyid(R.id.xxx); TextView tv = converView.findviewByid(R.id.xxxx);Buttion bt = converView.findviewby(R.id.xxxxx);viewHolder.iv = iv;viewHolder.tv = tv;converView.setTag(viewHolder );}else{viewHolder = (MyViewHolder )converView.getTag();}viewHolder.iv.setImageResource(xxxxxxx);viewHolder.bt.setonclicklistener(new ********);return converView;}================================================================================public class MyImageAdapter extends BaseAdapter {Context context = null;int[] myPics = null;public MyImageAdapter(Context ctxt, int[] myIcons) {this.context = ctxt;this.myPics = myIcons;}@Overridepublic int getCount() {return myPics.length;}//getItem->返回子视图数据//AdapterView.getItemAtPostion->Object@Overridepublic Object getItem(int position) {return position;}//重写方法,修改成返回图片资源编号==================================================重点这个方法,这里返回资源的id//AdapterView.getItemIdAtPostion()@Overridepublic long getItemId(int position) {return myPics[position];}//高级组件子视图@Overridepublic View getView(int position, View convertView, ViewGroup parent) {return convertView;}}然后:imageSwitcher.setImageResource((int)parent.getItemIdAtPosition(position));  这里监听器中,第一个参数就是事件源,事件源本身能调用getItemIdAtPosition(position),通过这个方法就能调用我们适配器中设置的资源文件id值


                                             
0 0