При закрытии фрагмента диалогового окна флажок снимается

У меня есть настраиваемый фрагмент диалогового окна с двумя флажками в моем приложении, которое отправляет значение в MainActivity с помощью Listener. Проблема, с которой я сталкиваюсь, заключается в том, что флажки снимаются, как только я касаюсь вне фрагмента диалогового окна, чтобы закрыть его. Мне нужно, чтобы флажки оставались в своем состоянии. Пожалуйста, помогите.

TypeDialogFragment.java

public class TypeDialogFragment extends DialogFragment {
public interface OnInputListener{
    void sendInput(String input);
}

private static final String TAG = "TypeDialog";
public OnInputListener mOnInputListener;
CheckBox type1, type2;
View v;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


    if (v != null) {
        if ((ViewGroup)v.getParent() != null)
            ((ViewGroup)v.getParent()).removeView(v);
        return v;
    }

     v = inflater.inflate(R.layout.fragment_type_dialog, container, false);
    type1=(CheckBox) v.findViewById(R.id.checkBox2);
    type2 =(CheckBox)v.findViewById(R.id.checkBox3) ;



    type1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        if (((CheckBox) view).isChecked()) {

             mOnInputListener.sendInput("Type1");

            }
        }
    });

    type2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if (((CheckBox) view).isChecked()) {

                mOnInputListener.sendInput("Type2");

            }
        }
    });

    // Do all the stuff to initialize your custom view
    // set "origin" to top left corner, so to speak
    Window window = getDialog().getWindow();
    window.setGravity(Gravity.TOP|Gravity.LEFT);

    // after that, setting values for x and y works "naturally"
    WindowManager.LayoutParams params = window.getAttributes();
    params.x = 20;
    params.y = 250;
    window.setAttributes(params);
    return v;
}

@Override 
public void onStart() {
    super.onStart();

    Window window = getDialog().getWindow();
    WindowManager.LayoutParams windowParams = window.getAttributes();
    windowParams.dimAmount = 0.00f;
    windowParams.flags |= WindowManager.LayoutParams.FLAG_DIM_BEHIND;
    window.setAttributes(windowParams);
}


@Override
public void onAttach(Context context) {
    super.onAttach(context);
    try{
        mOnInputListener = (OnInputListener) getActivity();
    }catch (ClassCastException e){
        Log.e(TAG, "onAttach: ClassCastException: " + e.getMessage() );
    }
}
}

Используйте sharedPreferances для хранения значения флажка

Anand 18.12.2018 06:07
stackoverflow.com/questions/6800244/…
Anand 18.12.2018 06:09

Вы не разместили код, который показывает, как у вас закрывается диалог, когда вы касаетесь вне его. Пожалуйста, разместите больше кода.

lionscribe 18.12.2018 06:20

отметьте этот ответ: stackoverflow.com/a/38630594/9060917

Praveen 18.12.2018 07:45

@lionscribe У меня нет кода для закрытия фрагмента диалога. Этот фрагмент вызывается в моей деятельности

Dioptre Pic 18.12.2018 10:53

@lionscribe Что произойдет, если я выберу основное действие, как закрывается фрагмент диалога?

Dioptre Pic 18.12.2018 11:24
2
6
172
0

Другие вопросы по теме