| | |
| | | |
| | | import android.content.Context; |
| | | import android.os.Bundle; |
| | | import android.text.TextUtils; |
| | | import android.view.View; |
| | | import android.widget.TextView; |
| | | |
| | | import androidx.annotation.NonNull; |
| | | import androidx.appcompat.content.res.AppCompatResources; |
| | | |
| | | import com.hdl.photovoltaic.R; |
| | | import com.hdl.photovoltaic.base.BaseDialog; |
| | | import com.hdl.photovoltaic.databinding.DialogDefaultFilteringBinding; |
| | | import com.hdl.photovoltaic.enums.GridType; |
| | | import com.hdl.photovoltaic.other.HdlThreadLogic; |
| | | |
| | | public class DefaultFilteringDialog extends BaseDialog { |
| | | private final Context mContext; |
| | |
| | | DialogDefaultFilteringBinding viewBinding; |
| | | |
| | | OnClickListener mOnClickListener; |
| | | |
| | | final String text1 = "0-5"; |
| | | final String text2 = "5-10"; |
| | | final String text3 = "10-15"; |
| | | final String text4 = "15-30"; |
| | | final String text5 = "30-100"; |
| | | final String text6 = "100-300"; |
| | | final String text7 = "300-500"; |
| | | final String text8 = "500+"; |
| | | |
| | | |
| | | private String mStateValue = GridType.All; |
| | | |
| | | public DefaultFilteringDialog(@NonNull Context context) { |
| | | super(context, R.style.Custom_Dialog); |
| | |
| | | //初始化界面控件 |
| | | initView(); |
| | | //初始化界面数据 |
| | | initData(); |
| | | // initData(mMinValue, mMaxValue, mStateValue); |
| | | //初始化界面控件的事件 |
| | | initEvent(); |
| | | |
| | | |
| | | } |
| | | |
| | | private void initEvent() { |
| | |
| | | viewBinding.affirmLl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | if (mOnClickListener != null) { |
| | | mOnClickListener.confirm(); |
| | | String minValue = viewBinding.minEt.getText().toString(); |
| | | String maxValue = viewBinding.maxEt.getText().toString(); |
| | | if (!TextUtils.isEmpty(minValue) && !TextUtils.isEmpty(maxValue)) { |
| | | try { |
| | | if (Integer.parseInt(minValue) > Integer.parseInt(maxValue)) { |
| | | //最小值在前面 |
| | | if (mOnClickListener != null) { |
| | | mOnClickListener.confirm(maxValue, minValue, mStateValue); |
| | | } |
| | | } else { |
| | | if (mOnClickListener != null) { |
| | | mOnClickListener.confirm(minValue, maxValue, mStateValue); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | //强制转换因输入值超出int值域范围报出异常 |
| | | int maxValueInt = Integer.MAX_VALUE; |
| | | HdlThreadLogic.toast(mContext, mContext.getString(R.string.the_input_value_has_been_exceeded) + "(" + maxValueInt + ")."); |
| | | return; |
| | | } |
| | | |
| | | } else { |
| | | if (mOnClickListener != null) { |
| | | mOnClickListener.confirm(minValue, maxValue, mStateValue); |
| | | } |
| | | } |
| | | dismiss(); |
| | | } |
| | | }); |
| | | |
| | | |
| | | viewBinding.cancelLl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | |
| | | dismiss(); |
| | | } |
| | | }); |
| | | |
| | | viewBinding.resetTv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | setBackgroundColor(null, TitleType.string_capacity); |
| | | setSelectedText(""); |
| | | } |
| | | }); |
| | | viewBinding.text1Tv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | setBackgroundColor(viewBinding.text1Tv, TitleType.string_capacity); |
| | | setSelectedText(viewBinding.text1Tv.getTag().toString()); |
| | | } |
| | | }); |
| | | viewBinding.text2Tv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | setBackgroundColor(viewBinding.text2Tv, TitleType.string_capacity); |
| | | setSelectedText(viewBinding.text2Tv.getTag().toString()); |
| | | } |
| | | }); |
| | | viewBinding.text3Tv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | setBackgroundColor(viewBinding.text3Tv, TitleType.string_capacity); |
| | | setSelectedText(viewBinding.text3Tv.getTag().toString()); |
| | | } |
| | | }); |
| | | viewBinding.text4Tv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | setBackgroundColor(viewBinding.text4Tv, TitleType.string_capacity); |
| | | setSelectedText(viewBinding.text4Tv.getTag().toString()); |
| | | } |
| | | }); |
| | | |
| | | viewBinding.text5Tv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | setBackgroundColor(viewBinding.text5Tv, TitleType.string_capacity); |
| | | setSelectedText(viewBinding.text5Tv.getTag().toString()); |
| | | } |
| | | }); |
| | | viewBinding.text6Tv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | setBackgroundColor(viewBinding.text6Tv, TitleType.string_capacity); |
| | | setSelectedText(viewBinding.text6Tv.getTag().toString()); |
| | | } |
| | | }); |
| | | viewBinding.text7Tv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | setBackgroundColor(viewBinding.text7Tv, TitleType.string_capacity); |
| | | setSelectedText(viewBinding.text7Tv.getTag().toString()); |
| | | } |
| | | }); |
| | | viewBinding.text8Tv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | setBackgroundColor(viewBinding.text8Tv, TitleType.string_capacity); |
| | | setSelectedText(viewBinding.text8Tv.getTag().toString()); |
| | | } |
| | | }); |
| | | |
| | | viewBinding.allTv.setOnClickListener(new View.OnClickListener() { |
| | | |
| | | @Override |
| | | public void onClick(View v) { |
| | | setBackgroundColor(viewBinding.allTv, TitleType.GridConnectedState); |
| | | setSelectedText(viewBinding.allTv.getTag().toString()); |
| | | } |
| | | }); |
| | | viewBinding.gridConnectedTv.setOnClickListener(new View.OnClickListener() { |
| | | |
| | | @Override |
| | | public void onClick(View v) { |
| | | setBackgroundColor(viewBinding.gridConnectedTv, TitleType.GridConnectedState); |
| | | setSelectedText(viewBinding.gridConnectedTv.getTag().toString()); |
| | | } |
| | | }); |
| | | viewBinding.offNetworkTv.setOnClickListener(new View.OnClickListener() { |
| | | |
| | | @Override |
| | | public void onClick(View v) { |
| | | setBackgroundColor(viewBinding.offNetworkTv, TitleType.GridConnectedState); |
| | | setSelectedText(viewBinding.offNetworkTv.getTag().toString()); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | private void initData() { |
| | | /** |
| | | * @param value 选中的值 |
| | | */ |
| | | private void setSelectedText(String value) { |
| | | |
| | | String minValue = "", maxValue = ""; |
| | | if (TextUtils.isEmpty(value)) { |
| | | minValue = ""; |
| | | maxValue = ""; |
| | | } else if (value.contains("+")) { |
| | | minValue = "500"; |
| | | maxValue = ""; |
| | | } else if (value.contains("-")) { |
| | | String[] min_max = value.split("-"); |
| | | if (min_max.length == 2) { |
| | | minValue = min_max[0]; |
| | | maxValue = min_max[1]; |
| | | } |
| | | } else { |
| | | mStateValue = value; |
| | | } |
| | | |
| | | viewBinding.minEt.setText(minValue); |
| | | viewBinding.maxEt.setText(maxValue); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 改变组件背景,字体颜色格式 |
| | | * |
| | | * @param textView 组件可以(设置为null,没有选中状态) |
| | | * @param titleType 修改类型 |
| | | */ |
| | | private void setBackgroundColor(TextView textView, TitleType titleType) { |
| | | if (titleType == TitleType.string_capacity) { |
| | | viewBinding.text1Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000)); |
| | | viewBinding.text1Tv.setTextColor(mContext.getColor(R.color.text_E6000000)); |
| | | viewBinding.text2Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000)); |
| | | viewBinding.text2Tv.setTextColor(mContext.getColor(R.color.text_E6000000)); |
| | | viewBinding.text3Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000)); |
| | | viewBinding.text3Tv.setTextColor(mContext.getColor(R.color.text_E6000000)); |
| | | viewBinding.text4Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000)); |
| | | viewBinding.text4Tv.setTextColor(mContext.getColor(R.color.text_E6000000)); |
| | | viewBinding.text5Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000)); |
| | | viewBinding.text5Tv.setTextColor(mContext.getColor(R.color.text_E6000000)); |
| | | viewBinding.text6Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000)); |
| | | viewBinding.text6Tv.setTextColor(mContext.getColor(R.color.text_E6000000)); |
| | | viewBinding.text7Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000)); |
| | | viewBinding.text7Tv.setTextColor(mContext.getColor(R.color.text_E6000000)); |
| | | viewBinding.text8Tv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000)); |
| | | viewBinding.text8Tv.setTextColor(mContext.getColor(R.color.text_E6000000)); |
| | | } else { |
| | | viewBinding.allTv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000)); |
| | | viewBinding.allTv.setTextColor(mContext.getColor(R.color.text_E6000000)); |
| | | viewBinding.gridConnectedTv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000)); |
| | | viewBinding.gridConnectedTv.setTextColor(mContext.getColor(R.color.text_E6000000)); |
| | | viewBinding.offNetworkTv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.search_bj_ff05000000)); |
| | | viewBinding.offNetworkTv.setTextColor(mContext.getColor(R.color.text_E6000000)); |
| | | } |
| | | if (textView != null) { |
| | | textView.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.selected_38c494)); |
| | | textView.setTextColor(mContext.getColor(R.color.text_FFFFFFFF)); |
| | | } |
| | | |
| | | } |
| | | |
| | | public void initState(String min, String max, String stateValue) { |
| | | try { |
| | | mStateValue = stateValue; |
| | | viewBinding.minEt.setText(min); |
| | | viewBinding.maxEt.setText(max); |
| | | |
| | | if (!TextUtils.isEmpty(min) || !TextUtils.isEmpty(max)) { |
| | | String str = min + "-" + max; |
| | | switch (str) { |
| | | case text1: |
| | | setBackgroundColor(viewBinding.text1Tv, TitleType.string_capacity); |
| | | break; |
| | | case text2: |
| | | setBackgroundColor(viewBinding.text2Tv, TitleType.string_capacity); |
| | | break; |
| | | case text3: |
| | | setBackgroundColor(viewBinding.text3Tv, TitleType.string_capacity); |
| | | break; |
| | | case text4: |
| | | setBackgroundColor(viewBinding.text4Tv, TitleType.string_capacity); |
| | | break; |
| | | case text5: |
| | | setBackgroundColor(viewBinding.text5Tv, TitleType.string_capacity); |
| | | break; |
| | | case text6: |
| | | setBackgroundColor(viewBinding.text6Tv, TitleType.string_capacity); |
| | | break; |
| | | case text7: |
| | | setBackgroundColor(viewBinding.text7Tv, TitleType.string_capacity); |
| | | break; |
| | | case text8: |
| | | setBackgroundColor(viewBinding.text8Tv, TitleType.string_capacity); |
| | | break; |
| | | } |
| | | } |
| | | if (TextUtils.isEmpty(stateValue)) { |
| | | setBackgroundColor(viewBinding.allTv, TitleType.GridConnectedState); |
| | | } else if (stateValue.equals(GridType.FULL_GRID)) { |
| | | setBackgroundColor(viewBinding.gridConnectedTv, TitleType.GridConnectedState); |
| | | } else { |
| | | setBackgroundColor(viewBinding.offNetworkTv, TitleType.GridConnectedState); |
| | | } |
| | | } catch (Exception ignored) { |
| | | } |
| | | |
| | | } |
| | | |
| | | private void initView() { |
| | | |
| | | viewBinding.text1Tv.setTag(text1); |
| | | viewBinding.text2Tv.setTag(text2); |
| | | viewBinding.text3Tv.setTag(text3); |
| | | viewBinding.text4Tv.setTag(text4); |
| | | viewBinding.text5Tv.setTag(text5); |
| | | viewBinding.text6Tv.setTag(text6); |
| | | viewBinding.text7Tv.setTag(text7); |
| | | viewBinding.text8Tv.setTag(text8); |
| | | |
| | | viewBinding.allTv.setTag(GridType.All); |
| | | viewBinding.gridConnectedTv.setTag(GridType.FULL_GRID); |
| | | viewBinding.offNetworkTv.setTag(GridType.OFFLINE); |
| | | setBackgroundColor(null, TitleType.string_capacity); |
| | | setBackgroundColor(viewBinding.allTv, TitleType.GridConnectedState); |
| | | } |
| | | |
| | | public void setOnClickListener(OnClickListener onClickListener) { |
| | |
| | | |
| | | |
| | | public interface OnClickListener { |
| | | void confirm(); |
| | | void confirm(String min, String max, String state); |
| | | } |
| | | |
| | | public enum TitleType { |
| | | string_capacity,//组串容量 |
| | | GridConnectedState//并网状态 |
| | | |
| | | } |
| | | |
| | | |
| | | } |