SockSTap S O C K S T A P

android适配器:BaseAdapter

首页 / 新闻资讯 / 正文

BaseAdapter是个抽象类,需要我们继承编写子类实现自定义ListView适配器

1.自定义的adapter类 class MyAdapter extends BaseAdapter {      View MyView;     //数据源     int img[]={R.drawable.f13,R.drawable.f14};     String str[]={"图片1","图片2"};     /**      * @return  返回项的个数       */     @Override     public int getCount() {         return str.length;     }      /**      * @param i      * @return 返回项对象      */     @Override     public Object getItem(int i) {         return null;     }      /**      * @param i      * @return  返回项的索引       */     @Override     public long getItemId(int i) {         return i;     }      /**      * @param i 项索引      * @param view 项布局文件      * @param viewGroup      * @return 返回每一项的视图       */     @Override     public View getView(int i, View view, ViewGroup viewGroup) {          /**          *view参数是自定义的项布局文件,第一次执行时是null,所以需要进行判断,如果是null则利用LayoutInflater进行解析          *之后系统会将view自动放入缓存,所以下次执行时则不用再次进行解析就可以使用,提高效率          */         if(view==null) {         LayoutInflater inflater=LayoutInflater.from(adapterActivity.this);//根据上下文创建解析对象             MyView =inflater.inflate(R.layout.base_adapter_item, null, false);//根据布局文件解析成view          }         MyView=view;         //1.获取控件         TextView textView=(TextView)MyView.findViewById(R.id.tv);         ImageView imageView=(ImageView)MyView.findViewById(R.id.imageView);         //2.根据索引从数据源中获取内容填充         textView.setText(str[i]);         imageView.setImageResource(img[i]);         return MyView;     } }

2.执行的java代码

MyAdapter myAdapter=new MyAdapter();//创建adapter对象 listView.setAdapter(myAdapter);//listView

3.效果