在第一个Activity中,使用文 本控件输入姓名与身高,使用单选按钻选择性别,将结果传递到第二个Activity:在第二个 Activity中显示第一个Activity传输的数据,并且单击按钮后,将数据返回到第一个Activity中
时间: 2024-10-20 13:17:24 浏览: 13
Android中点击按钮启动另一个Activity及Activity之间传值问题
在Android应用程序中,要实现这种功能,你可以按照以下步骤操作:
1. **创建布局**:
- 在`FirstActivity.java`的第一个Activity中,你需要创建一个包含文本框(EditText)用于输入姓名和一个TextView用于输入身高。添加两个EditText控件(`nameEditText` 和 `heightEditText`),以及单选按钮(RadioButtons)用于选择性别,例如Male和Female。
```java
// XML布局片段
<EditText
android:id="@+id/nameEditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="姓名" />
<RadioButton
android:id="@+id/maleRadioButton"
android:text="男"
android:checked="true" />
<RadioButton
android:id="@+id/femaleRadioButton"
android:text="女"
android:layout_below="@+id/maleRadioButton" />
<TextView
android:id="@+id/heightTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="身高"/>
```
2. **保存数据**:
在`FirstActivity`中设置一个`onSaveInstanceState()`方法,当用户切换回该Activity时,存储他们的输入数据。当启动第二个Activity时,通过`Intent`传递数据:
```java
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("NAME", nameEditText.getText().toString());
intent.putExtra("HEIGHT", heightTextView.getText().toString());
intent.putExtra("SEX", maleRadioButton.isChecked() ? "MALE" : "FEMALE");
startActivity(intent);
```
3. **接收并展示数据**:
在`SecondActivity`中,通过`getIntent()`获取数据并在`onCreate()`中解析:
```java
String name = getIntent().getStringExtra("NAME");
String height = getIntent().getStringExtra("HEIGHT");
String sex = getIntent().getStringExtra("SEX");
TextView displayData = findViewById(R.id.display_data);
displayData.setText("姓名: " + name + "\n身高: " + height + "\n性别: " + sex);
```
4. **双向数据流**:
要允许用户从第二个Activity返回数据,可以在`SecondActivity`中添加一个按钮点击事件,使用`setResult()`和`finish()`方法。在`FirstActivity`中接收返回的结果:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
// 获取并处理返回的数据
}
}
```
5. **在`SecondActivity`中发送数据**:
添加一个按钮点击事件,比如Button Click,然后结束当前Activity并设置结果数据:
```java
Button backToFirstActivityButton = findViewById(R.id.back_to_first_activity_button);
backToFirstActivityButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setResult(RESULT_OK, new Intent().putExtra("DATA_TO_RETURN", /* 这里是你想要返回的数据 */));
finish();
}
});
```
阅读全文