Реализация RadioButton внутри DialogFragment с помощью onCreateView

Я пытался реализовать функциональность RadioButton в DialogFragment, где значения хранятся/отображаются с помощью кнопки.

Вот код, который я собрал до сих пор. Может ли кто-нибудь помочь мне с тем, что я делаю неправильно и что я, вероятно, должен делать? Спасибо!.

    public class AddDialogFragment extends DialogFragment {

    public static RadioGroup addRadioGroup;

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

        View view = inflater.inflate(R.layout.add_layout, container);

        Button dialogAddButton = (Button) view.findViewById(R.id.dialog_add_button);
        dialogAddButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EditText addInput = (EditText) view.findViewById(R.id.add_input);
                int selected_id = addRadioGroup.getCheckedRadioButtonId();
                RadioButton addRadioButton = (RadioButton) view.findViewById(selected_id);
                Toast.makeText(this, addRadioButton.getText().toString(), Toast.LENGTH_SHORT).show();
            }
        });
        this.getDialog().setTitle("Set Title");

        return view;
    }
}

1 ответ

  1. Вы пропустили RadioGroup addRadioGroup = (RadioGroup) view.findViewById(R.id.YOUR_RADIO_BUTTON_ID);

    public class AddDialogFragment extends DialogFragment {
        @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    
            View view = inflater.inflate(R.layout.add_layout, container);
    
            Button dialogAddButton = (Button) view.findViewById(R.id.dialog_add_button);
            RadioGroup addRadioGroup = (RadioGroup) view.findViewById(R.id.YOUR_RADIO_BUTTON_ID);
            dialogAddButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    EditText addInput = (EditText) view.findViewById(R.id.add_input);
                    int selected_id = addRadioGroup.getCheckedRadioButtonId();
                    RadioButton addRadioButton = (RadioButton) view.findViewById(selected_id);
                    Toast.makeText(this, addRadioButton.getText().toString(), Toast.LENGTH_SHORT).show();
                }
            });
            this.getDialog().setTitle("Set Title");
    
            return view;
        }
    }