如何从活动中的片段中选择Radio Group中的Radio Button?

时间:2018-05-18 04:27:33

标签: android android-fragments android-radiogroup

我是android的新手,我无法获得从一个活动中的片段上的radiogroup中获取选定值的逻辑。 我想为我的班级做一个简单的提问。

这是我的java

public class Frag3_Kepentingan extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view_frag3 = inflater.inflate(R.layout.activity_frag3_kepentingan, container, false);
    return view_frag3;

我已经为每个单选按钮&广播组。 这是我的xml_Layout

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="290dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true">

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="58dp">

        <RadioGroup
                android:id="@+id/grup31"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <RadioButton
                    android:id="@+id/grup31A1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="1"
                    android:layout_weight="1" />

                <RadioButton
                    android:id="@+id/grup31A2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="2"
                    android:layout_weight="1" />

                <RadioButton
                    android:id="@+id/grup31A3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="3"
                    android:layout_weight="1" />

       </RadioGroup>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true">

        <Button
            android:id="@+id/btnSimpanGrup3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:layout_weight="1"
            android:text="Simpan" />

    </RelativeLayout>
</LinearLayout>

感谢您的分享。

2 个答案:

答案 0 :(得分:0)

rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {


            switch (checkedId)
            {

                //your desire code
            }
        }
    });

答案 1 :(得分:0)

RadioGroup布局应如下所示

<RadioGroup
    android:id="@+id/myRadioGroup"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">


    <RadioButton
        android:id="@+id/rbMale"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Male"
        android:textColor="@color/colorPrimaryDark"
        android:buttonTint="@color/colorPrimaryDark" />

    <RadioButton
        android:id="@+id/rbFemale"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Female"
        android:layout_marginRight="20sp"
        android:layout_marginLeft="20sp"
        android:textColor="@color/colorPrimaryDark"
        android:buttonTint="@color/colorPrimaryDark" />

  </RadioGroup>

初始化你的Fragemnt中的RadioButtons

RadioButton rMale = getActivity().findViewById(R.id.rbMale);
RadioButton rFemale = getActivity().findViewById(R.id.rbFemale);

如果选中或取消选中,则从RadioButton获取值

 String userGender= "";
                if (rMale.isChecked()) {
                    userGender = "male";
                } else if (rFemale.isChecked()) {
                    userGender = "female";
                }