我有一个广播组,选择“是”,“否”和“也许”。我想要一个可以返回用户选择的选项的函数。
这是我的代码
<RadioGroup
android:id="@+id/answerRadioGroup"
android:layout_width="240dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@+id/submitButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/myTextView"
app:layout_constraintVertical_bias="0.26">
<RadioButton
android:id="@+id/yesRadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Yes" />
<RadioButton
android:id="@+id/noRadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="No" />
<RadioButton
android:id="@+id/maybeRadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Maybe" />
</RadioGroup>
这是我要使用的功能:
private String checkGuess(){
guessRadioGroup = (RadioGroup) findViewById(R.id.guessRadioGroup);
int selectedId = guessRadioGroup.getCheckedRadioButtonId();
radioButton = (RadioButton) findViewById(selectedId);
String s = (String) radioButton.getText().toString();
return s;
}
当我将String s = (String) radioButton.getText().toString();
替换为String s = "Whatever"
之类的东西时,此功能似乎起作用。问题似乎出在使用getText()
方法上。
这是我在MainActivity.java中用来显示文本的内容:
TextView tempTextView = (TextView) findViewById(R.id.tempTextView);
tempTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String abc = checkGuess();
tempTextView.setText("You chose: " + abc);
}
});
答案 0 :(得分:0)
您应将CustomListener用于radioButton
radioButton.setOnCheckedChangeListener(new CustomListener());
class CustomListener implements CompoundButton.OnCheckedChangeListener{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
switch (buttonView.getId()){
case R.id.rd1:
break;
}
}
}
答案 1 :(得分:0)
您应将radioGroup用作“查找”单选按钮的父级。而且,在使用toString()时,您也不需要强制转换为String。
private String checkGuess(){
guessRadioGroup = (RadioGroup) findViewById(R.id.guessRadioGroup);
int selectedId = guessRadioGroup.getCheckedRadioButtonId();
radioButton = (RadioButton) guessRadioGroup.findViewById(selectedId);
String s = radioButton.getText().toString();
return s;
}
希望它会对您有所帮助。