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:如何在 Java 中以编程方式选中/取消选中 RadioGroup 中的单选按钮