点击按钮切换不同布局

public class MyCreditCardAdapter extends BaseAdapter{
    View view;
    private List<MyCreditCardBean> mLists;
    private Context context;
    private final int VIEW_TYPE_COUNT = 2;  //子布局个数
    private final int TYPE_1 = 0;   //子布局 1
    private final int TYPE_2 = 1;   //

    public MyCreditCardAdapter(List<MyCreditCardBean> mLists, Context context) {
        this.mLists = mLists;
        this.context = context;

    }
    @Override
    public int getItemViewType(int position) {
        if (mLists.get(position).isShow()==false){   //以数据源中的某个标签来判断加载那个子布局样式
            return TYPE_1;
        }else{
            return TYPE_2;
        }
    }
    @Override
    public int getViewTypeCount() {
        return VIEW_TYPE_COUNT;   //子布局个数
    }
    @Override
    public int getCount() {
        return mLists.size();
    }

    @Override
    public Object getItem(int position) {
        return mLists.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        ViewHolder mHolderView = null;
        ViewHolder1 mHolderView1 = null;
        view = convertView;
        int view_type = getItemViewType(position); //得到对应位置子布局类型
        if (view == null) {
            switch (view_type){
                case TYPE_1:
                    view = View.inflate(context, R.layout.activity_cardinfo_short, null);
                    mHolderView = new ViewHolder(view);
                    view.setTag(mHolderView);
                    mHolderView.ivshow.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            mOnShowCardBtnClickListener.onBtnClick(position);
                        }
                    });
                    break;
                case TYPE_2:
                    view = View.inflate(context, R.layout.activity_cardinfo, null);
                    mHolderView1 = new ViewHolder1(view);
                    view.setTag(mHolderView1);
                    mHolderView1.iv_shouqi.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            mOnUnShowCardBtnClickListener.onBtnClick(position);
                        }
                    });
                    break;
            }

        } else {
            switch (view_type){
                case TYPE_1:
                    mHolderView = (ViewHolder) convertView.getTag();
                    break;
                case TYPE_2:
                    mHolderView1 = (ViewHolder1) convertView.getTag();
                    break;
            }

        }
        return view;
    }
    /**
     * 显示银行卡内容按钮点击回调
     */
    public interface onShowCardBtnClickListener {
        void onBtnClick(int position);
    }

    private onShowCardBtnClickListener mOnShowCardBtnClickListener;

    public void setmOnShowCardBtnClickListener (onShowCardBtnClickListener mOnShowCardBtnClickListener) {
        this.mOnShowCardBtnClickListener = mOnShowCardBtnClickListener;
    }

    /**
     * 隐藏银行卡内容按钮点击回调
     */
    public interface onUnShowCardBtnClickListener {
        void onBtnClick(int position);
    }

    private onUnShowCardBtnClickListener mOnUnShowCardBtnClickListener;

    public void setmOnUnShowCardBtnClickListener(onUnShowCardBtnClickListener mOnUnShowCardBtnClickListener) {
        this.mOnUnShowCardBtnClickListener = mOnUnShowCardBtnClickListener;
    }
    static class ViewHolder {
        @Bind(R.id.ivshow)
        ImageView ivshow;
        ViewHolder(View view) {
            ButterKnife.bind(this, view);
        }
    }
    static class ViewHolder1 {
        @Bind(R.id.refresh)
        ImageView refresh;
        @Bind(R.id.quanxianjilu)
        TextView quanxianjilu;
        @Bind(R.id.huankuanjilu)
        TextView huankuanjilu;
        @Bind(R.id.quxian)
        TextView quxian;
        @Bind(R.id.huankuan)
        TextView huankuan;
        @Bind(R.id.iv_shouqi)
        ImageView iv_shouqi;
        ViewHolder1(View view) {
            ButterKnife.bind(this, view);
        }
    }
    public void refreshData(List<MyCreditCardBean> list){
        this.mLists = list;  //这里变成添加数据
        notifyDataSetChanged();
    }

}
 

adapter = new MyCreditCardAdapter(mLists,mActivity);
lv.setAdapter(adapter);
adapter.setmOnShowCardBtnClickListener(new MyCreditCardAdapter.onShowCardBtnClickListener() {
    @Override
    public void onBtnClick(int position) {
        mLists.get(position).setShow(true);
        adapter.refreshData(mLists);
    }
});
adapter.setmOnUnShowCardBtnClickListener(new MyCreditCardAdapter.onUnShowCardBtnClickListener() {
    @Override
    public void onBtnClick(int position) {
        mLists.get(position).setShow(false);
        adapter.refreshData(mLists);
    }
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值