android studio 中的单选按钮

Posted

技术标签:

【中文标题】android studio 中的单选按钮【英文标题】:Radio buttons in android studio 【发布时间】:2015-03-03 07:46:00 【问题描述】:

我想要单选按钮列表,在我选择一个并单击下一步后,我想根据按下的按钮执行不同的操作。我目前正在尝试为一些测试 TextView 和每个单选按钮设置文本,它说它是 -1。

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RadioButton;
import android.*;
import android.widget.RadioGroup;
import android.widget.TextView;

public class Polynomials extends Fragment 

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

        final View polyView = inflater.inflate(R.layout.fragment_poly, container, false);

        //layout
        RadioGroup rbg = (RadioGroup) polyView.findViewById(R.id.rBGPoly);
        Button next = (Button) polyView.findViewById(R.id.polyButton);
        final TextView test = (TextView) polyView.findViewById(R.id.jdtTest);
        final RadioButton but1 = (RadioButton) polyView.findViewById(R.id.radioButton1);
        RadioButton but2 = (RadioButton) polyView.findViewById(R.id.radioButton2);
        RadioButton but3 = (RadioButton) polyView.findViewById(R.id.radioButton3);
        RadioButton but4 = (RadioButton) polyView.findViewById(R.id.radioButton4);
        RadioButton but5 = (RadioButton) polyView.findViewById(R.id.radioButton5);
        RadioButton but6 = (RadioButton) polyView.findViewById(R.id.radioButton6);
        RadioButton but7 = (RadioButton) polyView.findViewById(R.id.radioButton7);






        RadioGroup g = (RadioGroup)polyView.findViewById(R.id.rBGPoly);


        final int selected = g.getCheckedRadioButtonId();



        next.setOnClickListener(new View.OnClickListener() 
            public void onClick(View v) 

test.setText(""+selected);

            
        );










        return polyView;
    




这是我的 xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/jdttae"
    android:layout_
    android:layout_

    android:orientation="vertical" >

    <TextView
        android:id="@+id/jdtchoose"
        android:layout_
        android:layout_
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="31dp"
        android:text="How many terms?"
        android:textSize="18sp" />

    <RadioGroup android:id="@+id/rBGPoly"
        android:layout_
        android:layout_
        android:orientation="vertical">

        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_
            android:layout_
            android:layout_marginTop="90dp"
            android:layout_marginLeft="180dp"
            android:text="1"
            android:layout_below="@+id/jdtchoose"
            android:layout_alignLeft="@+id/jdtchoose"

           />/>

        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_
            android:layout_
            android:text="2"
            android:layout_marginLeft="180dp"
            android:layout_marginTop="31dp"
            android:layout_below="@+id/radioButton1"
            android:layout_alignLeft="@+id/radioButton1"
           />/>

        <RadioButton
            android:id="@+id/radioButton3"
            android:layout_
            android:layout_
            android:text="3"
            android:layout_marginLeft="180dp"
            android:layout_marginTop="31dp"
            android:layout_below="@+id/radioButton2"
            android:layout_alignLeft="@+id/radioButton2"
            />/>

        <RadioButton
            android:id="@+id/radioButton4"
            android:layout_
            android:layout_
            android:layout_marginTop="31dp"
            android:layout_marginLeft="180dp"
            android:text="4"
            android:layout_below="@+id/radioButton3"
            android:layout_alignLeft="@+id/radioButton3"
            />/>


        <RadioButton
        android:id="@+id/radioButton5"
        android:layout_
        android:layout_
        android:layout_marginTop="31dp"
            android:layout_marginLeft="180dp"
        android:text="5"
        android:layout_below="@+id/radioButton4"
        android:layout_alignLeft="@+id/radioButton4"
        />/>







    <RadioButton
        android:layout_
        android:layout_
        android:text="6"
        android:layout_marginLeft="180dp"
        android:id="@+id/radioButton6"
        android:layout_below="@+id/radioButton5"
        android:layout_alignLeft="@+id/radioButton5"
        android:layout_marginTop="31dp"
        />/>

    <RadioButton
        android:layout_
        android:layout_
        android:text="7"
        android:layout_marginLeft="180dp"
        android:id="@+id/radioButton7"
        android:layout_below="@+id/radioButton6"
        android:layout_alignParentBottom="false"
        android:layout_alignLeft="@+id/radioButton6"
        android:layout_marginTop="31dp"
        android:checked="false"
        />/>

   </RadioGroup>
    <Button
        android:layout_
        android:layout_
        android:text="Next"
        android:id="@+id/polyButton"
        android:layout_alignParentBottom="true"
        android:layout_alignLeft="@+id/jdtchoose"
        android:layout_marginBottom="26dp"
        android:layout_alignRight="@+id/jdtchoose" />

    <TextView
        android:layout_
        android:layout_
        android:text="Test"
        android:id="@+id/jdtTest"
        android:editable="false"
        android:textSize="18sp"
        android:layout_alignBaseline="@+id/polyButton"
        android:layout_alignBottom="@+id/polyButton"
        android:layout_toLeftOf="@+id/polyButton"
        android:layout_marginRight="47dp" />

</RelativeLayout>

【问题讨论】:

【参考方案1】:

在下一个按钮单击时调用 g.getCheckedRadioButtonId,该按钮返回 RadioGroup 中当前选定的 rado 按钮 ID:

            public void onClick(View v) 
             int selected = g.getCheckedRadioButtonId();

             test.setText(String.valueof(selected));

            

【讨论】:

g.getCheckedRadioButtonId() 应该是rbg.getCheckedRadioButtonId() @petey : OP 也在使用g 看到int selected = g.getCheckedRadioButtonId(); 行之前的问题 它正在工作,谢谢你我在这个上花了太多时间。 @ρяσѕρєяK 是的,没错。他那里有两个相同的 finviewbyids

以上是关于android studio 中的单选按钮的主要内容,如果未能解决你的问题,请参考以下文章

是否可以更改android单选按钮组中的单选按钮图标

android中的单选按钮不起作用

android 编程中怎样从单选按钮获取数据

Android:如何在 Java 中以编程方式选中/取消选中 RadioGroup 中的单选按钮

Adobe Air for Android 上的单选按钮和单选按钮组?

Android:保存单选按钮的状态