【问题标题】:Implementing RadioButton inside DialogFragment using onCreateView使用 onCreateView 在 DialogFragment 中实现 RadioButton
【发布时间】:2017-03-14 19:15:26
【问题描述】:

我一直在尝试在 DialogFragment 中实现 RadioButton 功能,其中值通过按钮单击存储/显示。

这是我目前汇编的代码。谁能帮我解决我做错了什么以及我应该做什么?谢谢。

    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;
    }
}

【问题讨论】:

    标签: android android-studio radio-button android-dialogfragment


    【解决方案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;
        }
    }
    

    【讨论】:

    • 我收到一个“变量是从内部类中访问的,需要声明为最终的”警告“view”和“addRadioGroup”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 2012-10-26
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多