Флажок снят при закрытии фрагмента диалога - PullRequest
0 голосов
/ 18 декабря 2018

В моем приложении есть пользовательский фрагмент диалога с двумя флажками, который отправляет значение в 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() );
    }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...