适配器的简单包装

protected void setOnChildClickListener(View view, final Object target) {
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                listener.onChildClickListener(target);
            }
        });
    }

封装一个方法,说明适配器在哪里需要点击。




public interface IOnChildClickListener<W> {
        public void onChildClickListener(W target);
    }

声明一个接口。


protected IOnChildClickListener listener;

public void setOnChildClickListener(IOnChildClickListener listener) {
        this.listener = listener;
    }

初始化这个接口对象。


使用的时候即可这样用:


在adapter中   

  holder.guide_cartypy_item_name.setText(item.Name);
声明适配器中哪个view需要点击。


在activity中 :

mAdapter.setOnChildClickListener(this);
implements CMYBaseAdapter.IOnChildClickListener<CMYCarBrand>
初始化接口并让acitivity实现这个接口,接下来就可以写点击事件的具体逻辑了


 @Override
    public void onChildClickListener(CMYCarBrand mCarBrand) {
        CMYCarArchives mCarArchives = new CMYCarArchives();// 清除以前缓存
        // 品牌、图片url与该项车辆信息的id
        mCarArchives.CarInfo.CarBrandName = mCarBrand.Name;
        mCarArchives.CarInfo.CarBrandLogo = mCarBrand.BrandLogo;
        //设置车辆销售名称,否则在取出的时候会被认为是空对象,从Prefrence记录取出替代
        mCarArchives.CarInfo.MarketName = mCarBrand.Name;
        CMYApplication.getInstance().getCarManager().setGuideCar(mCarArchives);
        Intent intent = new Intent();
        intent.putExtra(KEY_INTENT_ID, mCarBrand.CarID);
        intent.setClass(mContext, CMYGuideCarSeriesActivity.class);
        startNewActivityForResult(intent, REQUEST_CODE_CAR_DETAIL, true);
    }






你可能感兴趣的:(适配器的简单包装)