package safeluck.drive.evaluation.customview; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.widget.Button; import android.widget.RadioButton; import android.widget.RadioGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.DialogFragment; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import safeluck.drive.evaluation.R; /** * @ProjectName: DriveJudge * @Package: safeluck.drive.evaluation.customview * @ClassName: SelectDialog * @Description: java类作用描述 * @Author: 李占伟 * @CreateDate: 2020-04-23 15:03 * @UpdateUser: 更新者 * @UpdateDate: 2020-04-23 15:03 * @UpdateRemark: 更新说明 * @Version: 1.0 */ public class SelectDialogThree extends DialogFragment implements View.OnClickListener { private static final String TAG = "SelectDialog"; private Button button; private RadioGroup rgb; public static final int FIRST = 0; public static final int SECOND = 1; public static final int THIRD = 2; public static final int FORTH= 3; public static final int SELECT_NONE = -1; private int result = SELECT_NONE; private RadioButton rb_1,rb_2,rb_3,rb_4; private ArrayList stringArrayList; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { if (getDialog() != null) { Window window = getDialog().getWindow(); if (window != null) { window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); window.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE); getDialog().setOnShowListener(dialog -> { window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE); hideBottomUIMenu(); }); } } View view = inflater.inflate(R.layout.layout_select_dlg_three,container,false); Bundle bundle = getArguments(); if (bundle != null){ stringArrayList = bundle.getStringArrayList("content"); } initView(view); return view; } private void initView(View view) { button = view.findViewById(R.id.btn_sure_); rb_1 = view.findViewById(R.id.rb1); rb_2 = view.findViewById(R.id.rb2); rb_3 = view.findViewById(R.id.rb3); rb_4 = view.findViewById(R.id.rb4); if (stringArrayList != null){ rb_1.setText(stringArrayList.get(0)); rb_2.setText(stringArrayList.get(1)); rb_3.setText(stringArrayList.get(2)); rb_4.setText(stringArrayList.get(3)); } rgb = view.findViewById(R.id.radiogroub); rgb.setOnCheckedChangeListener((RadioGroup group, int checkedId)-> { switch (checkedId){ case R.id.rb1: Log.i(TAG,"第一个被选中"); result = FIRST; break; case R.id.rb2: Log.i(TAG,"第二个被选中"); result = SECOND; break; case R.id.rb3: result = THIRD; break; case R.id.rb4: result = FORTH; break; default:break; } }); button.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_sure_: if (onSelectedListener != null){ onSelectedListener.makeYourChoice(result); } dismiss(); break; } } public interface OnSelectedListener{ void makeYourChoice(int res); } private OnSelectedListener onSelectedListener; public void setSelectedListener(OnSelectedListener onSelectedListener){ this.onSelectedListener = onSelectedListener; } public static SelectDialogThree newInstance(String... args){ SelectDialogThree sle = new SelectDialogThree(); if (args != null && args.length>=2){ List strs = Arrays.asList(args); ArrayList list = new ArrayList<>(strs); Bundle bundle = new Bundle(); bundle.putStringArrayList("content",list); sle.setArguments(bundle); } return sle; } /** * 隐藏虚拟按键,并且全屏 */ protected void hideBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api View v = this.getDialog().getWindow().getDecorView(); v.setSystemUiVisibility(View.GONE); } else if (Build.VERSION.SDK_INT >= 19) { //for new api versions. View decorView = getDialog().getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions); } } @Override public void dismiss() { super.dismiss(); } }