使用intent以隐式的方法启动Activity完成数据传递和结果返回样例
时间: 2024-02-17 10:02:45 浏览: 176
显示Intent和隐式Intent启动Activity的示例
好的,这里是一个使用隐式intent启动Activity完成数据传递和结果返回的样例代码:
在调用方Activity中:
```
// 创建一个用于传递数据的Bundle对象
Bundle data = new Bundle();
data.putString("name", "John");
data.putInt("age", 25);
// 创建一个intent对象,设置action和category
Intent intent = new Intent();
intent.setAction("com.example.ACTION_VIEW");
intent.addCategory("android.intent.category.DEFAULT");
// 将数据附加到intent中
intent.putExtras(data);
// 启动目标Activity并等待返回结果
startActivityForResult(intent, 1);
```
在目标Activity中:
```
// 从intent中获取传递的数据
String name = getIntent().getStringExtra("name");
int age = getIntent().getIntExtra("age", 0);
// 创建一个用于返回结果的intent对象
Intent resultIntent = new Intent();
resultIntent.putExtra("result", "success");
// 将结果设置到intent中并返回
setResult(Activity.RESULT_OK, resultIntent);
finish();
```
在调用方Activity中获取返回结果:
```
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == Activity.RESULT_OK) {
String result = data.getStringExtra("result");
Toast.makeText(this, "Result: " + result, Toast.LENGTH_SHORT).show();
}
}
```
以上代码用于启动一个名为"com.example.ACTION_VIEW"的Activity,将数据"name"和"age"传递到目标Activity中,并等待目标Activity返回结果。在目标Activity中,获取传递的数据并设置返回结果。最后,在调用方Activity中获取返回结果并显示一个Toast提示。
阅读全文