package com.basic.security.fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.Spinner; import android.widget.TextView; import com.basic.security.base.BaseFragment; import com.basic.security.manager.BusinessDetailManager; import com.basic.security.model.ModelAdapter; import com.basic.security.utils.ResolutionAdaptation; import org.androidannotations.annotations.Click; import org.androidannotations.annotations.EFragment; import org.androidannotations.annotations.ViewById; import java.util.ArrayList; import java.util.List; @EFragment public class DeviceListDialogFragment extends BaseFragment { public static String checkedTimeRuleId = ""; @ViewById public RelativeLayout rl_check_pass_time, rl_dialog; @ViewById public ListView lv_check_time; @ViewById public Button btn_check_time_save, btn_check_time_cancel; @ViewById public TextView tv_title; public boolean isShowTitle = true; public List checkedDeviceList = new ArrayList<>(); public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(ResolutionAdaptation.fragment_device_list_dialog(), container, false); } public void show() { super.show(); if (isShowTitle) { tv_title.setVisibility(View.VISIBLE); } else { tv_title.setVisibility(View.GONE); } } @Click void btn_check_time_save() { System1.out.println(checkedTimeRuleId); mainActivity().hideOneFragment(mainActivity().fragment_device_list_dialog); } @Click void btn_check_time_cancel() { mainActivity().hideOneFragment(mainActivity().fragment_device_list_dialog); } //选择集群设备的弹出框 public void showDeviceListDialog() { isShowTitle = false; mainActivity().showOneFragment(mainActivity().fragment_device_list_dialog); List allDevice = BusinessDetailManager.getDeviceDataList(); DeviceListAdapter allDeviceAdapter = new DeviceListAdapter(allDevice); lv_check_time.setAdapter(allDeviceAdapter); } private class DeviceListAdapter extends BaseAdapter { private List allDevice = new ArrayList<>(); public DeviceListAdapter(List allDevice) { this.allDevice.clear(); this.allDevice.addAll(allDevice); } public int getCount() { return allDevice == null ? 0 : allDevice.size(); } public Object getItem(int position) { return allDevice.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { long begin = System.currentTimeMillis(); ViewHolder viewHolder; if (convertView == null) { viewHolder = new ViewHolder(); convertView = LayoutInflater.from(getActivity()).inflate(com.basic.security.utils.ResolutionAdaptation.checkbox_spinner_item(), null); viewHolder.checkBox = convertView.findViewById(com.basic.security.utils.RUtils.R_id_ck_item_spinner); viewHolder.spinner = convertView.findViewById(com.basic.security.utils.RUtils.R_id_spinner_item_spinner); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.checkBox.setText(allDevice.get(position).getString("name")); checkedDeviceList.add(allDevice.get(position).getString("name")); ViewHolder finalViewHolder = viewHolder; viewHolder.checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> { if (finalViewHolder.checkBox.isChecked()) { checkedDeviceList.add(allDevice.get(position).getString("name")); } else { if (checkedDeviceList.contains(allDevice.get(position).getString("name"))) { checkedDeviceList.remove(allDevice.get(position).getString("name")); } } }); initSpinner(viewHolder.spinner); return convertView; } private void initSpinner(Spinner spinner) { String[] arr = {"允许通行", "有效时间内通行", "确认通行", "拒绝通行"}; ArrayAdapter adapter = new ArrayAdapter(getContext(), com.basic.security.utils.ResolutionAdaptation.spinner_item(), arr); spinner.setPopupBackgroundResource(com.basic.security.utils.RUtils.R_color_press_menu_text); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView parent, View view, int position, long id) { } public void onNothingSelected(AdapterView parent) { } }); } class ViewHolder { CheckBox checkBox; Spinner spinner; } } }