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.效果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值