安卓开发设计一个主 Activity 和一个子 Activity,点击主活动 A 的一个按钮,把相 应的值传到 B 活动,并且显示在 B 活动的相应控件上,同时点击 B 活动的一个按钮, 把 B 活动的值传到 A 活动,并且显示在相应的控件上。 A 活动传到 B 活动的值分别是: intent.putExtra("extra", "我是第一个页面传过来的值"); intent.putExtra("age", 50); intent.putExtra("IQ", 200.0f); B 活动回传给 A 活动的值分别是: 第一个:获取当前的年月日, 第二个:随机一个 0-100 的数字 第三个:获取当 B 页面此时的一个控件内容,然后传出去
时间: 2024-03-20 09:42:38 浏览: 16
好的,这是一个典型的 Android 应用程序开发问题。首先,在 A 活动中,您需要设置一个按钮的点击事件,该事件将传递需要传递给 B 活动的数据。这可以通过 Intent 对象来实现,如下所示:
```
// A 活动中的按钮点击事件
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(A.this, B.class);
intent.putExtra("extra", "我是第一个页面传过来的值");
intent.putExtra("age", 50);
intent.putExtra("IQ", 200.0f);
startActivityForResult(intent, 1);
}
});
```
在这个例子中,我们创建了一个 Intent 对象,用于将数据传递到 B 活动。我们使用 `putExtra` 方法将需要传递的数据添加到 Intent 对象中。`startActivityForResult` 方法用于启动 B 活动并等待结果。
接下来,在 B 活动中,您需要获取从 A 活动传递过来的数据,并将其显示在相应的控件上。这可以通过以下代码实现:
```
// B 活动中的 onCreate 方法中
Intent intent = getIntent();
String extra = intent.getStringExtra("extra");
int age = intent.getIntExtra("age", 0);
float IQ = intent.getFloatExtra("IQ", 0.0f);
// 显示传递过来的数据
TextView extraTextView = findViewById(R.id.extra_text_view);
extraTextView.setText(extra);
TextView ageTextView = findViewById(R.id.age_text_view);
ageTextView.setText(String.valueOf(age));
TextView iqTextView = findViewById(R.id.iq_text_view);
iqTextView.setText(String.valueOf(IQ));
```
在这个例子中,我们首先获取 Intent 对象,然后使用 `getStringExtra`、`getIntExtra` 和 `getFloatExtra` 方法获取从 A 活动传递过来的数据。接着,我们将这些数据显示在 B 活动的相应控件上。
最后,在 B 活动中,您需要设置一个按钮的点击事件,该事件将回传需要传递给 A 活动的数据。这可以通过以下代码实现:
```
// B 活动中的按钮点击事件
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("date", new Date().toString());
intent.putExtra("random", new Random().nextInt(100));
EditText editText = findViewById(R.id.edit_text);
intent.putExtra("content", editText.getText().toString());
setResult(RESULT_OK, intent);
finish();
}
});
```
在这个例子中,我们创建了一个 Intent 对象,用于将数据回传给 A 活动。我们使用 `putExtra` 方法将需要回传的数据添加到 Intent 对象中。`setResult` 方法用于设置回传的结果代码,并将 Intent 对象添加到结果中。最后,我们调用 `finish` 方法关闭 B 活动。
在 A 活动中,您需要使用 `onActivityResult` 方法来处理从 B 活动回传的数据,如下所示:
```
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data != null) {
String date = data.getStringExtra("date");
int random = data.getIntExtra("random", 0);
String content = data.getStringExtra("content");
// 显示回传的数据
TextView dateTextView = findViewById(R.id.date_text_view);
dateTextView.setText(date);
TextView randomTextView = findViewById(R.id.random_text_view);
randomTextView.setText(String.valueOf(random));
TextView contentTextView = findViewById(R.id.content_text_view);
contentTextView.setText(content);
}
}
```
在这个例子中,我们首先检查 requestCode 和 resultCode 是否匹配,并且 data 对象不为 null。然后,我们使用 `getStringExtra` 和 `getIntExtra` 方法获取从 B 活动回传的数据。最后,我们将这些数据显示在 A 活动的相应控件上。
这是一个完整的代码示例,希望能够帮助您解决问题。