package com.basic.security.fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.RadioButton; import android.widget.RelativeLayout; import android.widget.TextView; import com.basic.security.base.BaseFragment; import com.basic.security.manager.TimeManager; import com.basic.security.model.ModelAdapter; import com.basic.security.utils.ResolutionAdaptation; import com.basic.security.utils.TimeRuleListDialogListener; import org.androidannotations.annotations.Click; import org.androidannotations.annotations.EFragment; import org.androidannotations.annotations.ViewById; import java.util.List; @EFragment public class TimeRuleListDialogFragment 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; TimeRuleListDialogListener timeRuleListDialogListener; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(ResolutionAdaptation.fragment_time_rule_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() { mainActivity().hideOneFragment(mainActivity().fragment_time_rule_list_dialog); if (timeRuleListDialogListener != null) { timeRuleListDialogListener.timeRuleSelected(checkedTimeRuleId); } } @Click void btn_check_time_cancel() { mainActivity().hideOneFragment(mainActivity().fragment_time_rule_list_dialog); } public void showTimeRuleListDialog(String checkedRuleId, TimeRuleListDialogListener timeRuleListDialogListener) { this.timeRuleListDialogListener = timeRuleListDialogListener; checkedTimeRuleId = checkedRuleId; isShowTitle = true; List timeRuleList = TimeManager.getAllUseTimeRule(); TimeRuleAdapter timeRuleAdapter = new TimeRuleAdapter(timeRuleList); lv_check_time.setAdapter(timeRuleAdapter); lv_check_time.setOnItemClickListener((parent, view, position, id) -> { checkedTimeRuleId = timeRuleList.get(position).getId(); timeRuleAdapter.notifyDataSetChanged(); }); mainActivity().showOneFragment(mainActivity().fragment_time_rule_list_dialog); } private class TimeRuleAdapter extends BaseAdapter { private List timeRuleList; public TimeRuleAdapter(List timeRuleList) { this.timeRuleList = timeRuleList; } public int getCount() { return timeRuleList == null ? 0 : timeRuleList.size(); } public Object getItem(int position) { return timeRuleList.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView == null) { viewHolder = new ViewHolder(); convertView = LayoutInflater.from(getActivity()).inflate(com.basic.security.utils.ResolutionAdaptation.business_time_rule(), null); viewHolder.radio_button = convertView.findViewById(com.basic.security.utils.RUtils.R_id_radio_button); viewHolder.tv_message = convertView.findViewById(com.basic.security.utils.RUtils.R_id_tv_message); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.tv_message.setText(timeRuleList.get(position).getString("time_rule_name")); viewHolder.radio_button.setChecked(false); if (timeRuleList.get(position).getId().equals(checkedTimeRuleId)) { viewHolder.radio_button.setChecked(true); } else { viewHolder.radio_button.setChecked(false); } return convertView; } class ViewHolder { RadioButton radio_button; TextView tv_message; } } }