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;
}
这样就你能完全实现了,如下效果图