我正在尝试允许用户输入他们的姓名,然后点击三个单选按钮中的一个,然后单击提交按钮。在下一个活动中,它将显示他们的名字和他们选择的单选按钮。我已经设法能够发送名称,但我不知道如何发送单选按钮选择。有人可以帮忙吗?
这是我在主要活动布局.xml
中的内容<EditText
android:id="@+id/operatorName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:ems="10"
android:hint="@string/operator_name" />
<RadioGroup
android:id="@+id/radioShifts"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="10dp" >
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/radio1"
android:checked="true"
android:onClick="onRadioButtonClicked" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/radio2"
android:onClick="onRadioButtonClicked" />
<RadioButton
android:id="@+id/radioButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/radio3"
android:onClick="onRadioButtonClicked" />
</RadioGroup>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
android:text="@string/button1"
android:onClick="onButton1" />
我在main_activity .java文件中有这个:
public final static String OP_NAME = "com.cyapps.downtimer.OPNAME";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onRadioButtonClicked(View view) {
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
// Check which radio button was clicked
switch(view.getId()) {
case R.id.radioButton1:
if (checked)
break;
case R.id.radioButton2:
if (checked)
break;
case R.id.radioButton3:
if (checked)
break;
}
/* Intent intent = new Intent(this, WinderDTActivity.class);
EditText button = (EditText) findViewById(RadioGroup.getCheckedRadioButtonId());
String radioChosen = button.getText().toString();
intent.putExtra(RADIO_CHOSEN, radioChosen);*/
}
public void onButton1(View view) {
Intent intent = new Intent(this, WinderDTActivity.class);
EditText editText = (EditText) findViewById(R.id.operatorName);
String opName = editText.getText().toString();
intent.putExtra(OP_NAME, opName);
startActivity(intent);
}
/ * * /中的代码是我认为我应该做的..但我不确定。有人帮忙吗?我真的很感激..
答案 0 :(得分:3)
String str; // store the text corresponding to the RadioButton which is clicked
switch(view.getId()) {
case R.id.radioButton1:
if (checked)
str = "button1Text";
break;
case R.id.radioButton2:
if (checked) str = "button2Text";
break;
case R.id.radioButton3:
if (checked) str = "button3Text";
break;
}
Intent intent = new Intent(this, WinderDTActivity.class);
intent.putExtra("radioChosen", str); // pass "str" to the next Activity
编辑:要在下一个活动中接收数据,请使用
Bundle extras = getIntent().getExtras();
if (extras != null) {
String message= extras.getString("radioChosen");
}
答案 1 :(得分:0)
- 使用switch
选择单选按钮。
switch (types.getCheckedRadioButtonId()) {
case R.id.sit_down:
intent.putExtra(SIT_DOWN, "sitdown");
break;
case R.id.take_out:
intent.putExtra(TAKE_OUT, "takeout");
break;
}
- 现在只需执行startActivity(intent);