Andrioid多选框,Dialog上的多选框

private ArrayList<LevelBean> beans2=new ArrayList<>();

//数据初始化 放在初始化中
       LevelBean bean = new LevelBean();
        bean.levelId = "1";
        bean.levelName = "飞机";
//                bean.isChecked = true;

        LevelBean bean2 = new LevelBean();
        bean2.levelId = "2";
        bean2.levelName = "火车";
//      bean2.isChecked = false;

        LevelBean bean3 = new LevelBean();
        bean3.levelId = "3";
        bean3.levelName = "轮船";

        LevelBean bean4 = new LevelBean();
        bean4.levelId = "4";
        bean4.levelName = "自驾";

        LevelBean bean5 = new LevelBean();
        bean5.levelId = "5";
        bean5.levelName = "客运";


        beans2.add(bean);
        beans2.add(bean2);
        beans2.add(bean3);
        beans2.add(bean4);
        beans2.add(bean5);

//设置弹出框数据是已选中,若选中就显示选中状态

  if (clientMsgBean.travelTools!=null && !clientMsgBean.travelTools.equals("")){
            travelTool=clientMsgBean.travelTools;
                if (travelTool.contains("1")){
                    beans2.get(0).isChecked=true;
                    trainName="飞机";
                }
                if (travelTool.contains("2")){
                    beans2.get(1).isChecked=true;
                    if (trainName!=null&&!trainName.equals("")){
                        trainName+=",火车";
                    }else {
                        trainName+="火车";
                    }

                }
                if (travelTool.contains("3")){
                    beans2.get(2).isChecked=true;
                    if (trainName!=null&&!trainName.equals("")){
                        trainName+=",轮船";
                    }else {
                        trainName+="轮船";
                    }

                }
                if (travelTool.contains("4")){
                    beans2.get(3).isChecked=true;
                    if (trainName!=null&&!trainName.equals("")){
                        trainName+=",自驾";
                    }else {
                        trainName+="自驾";
                    }

                }
                if (travelTool.contains("5")){
                    beans2.get(4).isChecked=true;
                    if (trainName!=null&&!trainName.equals("")){
                        trainName+=",客运";
                    }else {
                        trainName+="客运";
                    }


                }
            cet_trip.setText(trainName);
        }





//弹出框
    private void selectTrain() {

        final CustomDialog dialog=new CustomDialog(MergeCustomerMessageActivity.this, R.layout.dialog_traintool_selector, R.style.CustomDialogTheme);
        NoSlidingListView nsl_select=(NoSlidingListView)dialog.findViewById(R.id.nsl_select);

        selectorAdapter = new TrainToolSelectorAdapter(MergeCustomerMessageActivity.this);
        nsl_select.setAdapter(selectorAdapter);

        selectorAdapter.setList(beans2);
        selectorAdapter.notifyDataSetChanged();



        Button bt_confrim=(Button)dialog.findViewById(R.id.bt_confrim);
        bt_confrim.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                beans2= (ArrayList<LevelBean>) selectorAdapter.getList();
                // 获取选中的项目
                selectedItemList = getSelectedItem();
                LogUtil2.log("selectedItemList============>>>>" + selectedItemList.toString());
                StringBuilder builder=new StringBuilder();
                StringBuilder builderID=new StringBuilder();
                if (selectedItemList!=null){
                    for (int i=0;i<selectedItemList.size();i++){
                        if (i==selectedItemList.size()-1){//当循环到最后一个的时候 就不添加逗号,
                            builder.append(selectedItemList.get(i).levelName);
                            builderID.append(selectedItemList.get(i).levelId);
                        }else {
                            builder.append(selectedItemList.get(i).levelName);
                            builder.append(",");

                            builderID.append(selectedItemList.get(i).levelId);
                            builderID.append(",");
                        }
                    }
                }
                cet_trip.setText(builder.toString());
                travelTool=builderID.toString();
                LogUtil2.log("selectedItemList============>>>>" + builder.toString()+"==="+travelTool);
                dialog.dismiss();
            }
        });
        dialog.show();
    }



//获取选中数据
 private ArrayList<LevelBean> getSelectedItem() {
        ArrayList<LevelBean> beanList = new ArrayList<LevelBean>();
        List<LevelBean> list = selectorAdapter.getList();
        if (list != null) {
            for (LevelBean bean : selectorAdapter.getList()) {
                if (bean.isChecked) {
                    beanList.add(bean);
                }
            }
        }
        return beanList;
    }
TrainToolSelectorAdapter
package com.broker.liming.adapter;

import android.app.Activity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.broker.liming.R;
import com.broker.liming.bean.LevelBean;

/**
 * @author chenhuirong
 * @Date 2019/1/15
 * @Description
 */

public class TrainToolSelectorAdapter extends ArrayListAdapter<LevelBean> {

//	private static int pos = -1;
    // 用来控制CheckBox的选中状况
//	private static HashMap<Integer, Boolean> isSelected;

    public TrainToolSelectorAdapter(Activity context) {
        super(context);

    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = inflater.inflate(R.layout.adapter_train_selector, null);
        }
        final LevelBean bean = getItem(position);

        CheckBox cb_checkbox = ViewHolder.get(convertView, R.id.cb_checkbox);
        RelativeLayout rl_checkbox = ViewHolder.get(convertView, R.id.rl_checkbox);
        TextView tv_name = ViewHolder.get(convertView, R.id.tv_name);

        if (bean.isChecked) {
            cb_checkbox.setChecked(true);
        } else {
            cb_checkbox.setChecked(false);

        }

        tv_name.setText(bean.levelName);

        convertView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (!bean.isChecked) {
                    bean.isChecked = true;
                } else {
                    bean.isChecked = false;
                }
                notifyDataSetChanged();

            }
        });

        return convertView;
    }

    public void setOnUpdateUiListener(SelectLevelAdapter.updateUiListener callback) {
        this.callback = callback;
    }

    public interface updateUiListener {
        void onUpdateUi();
    }

    private SelectLevelAdapter.updateUiListener callback;
}

这样就你能完全实现了,如下效果图

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值