编程实现Intent以隐式方法启动Activity,并完成数据传递和结果返回
时间: 2024-02-23 16:59:17 浏览: 112
好的,我可以为您提供一个Java代码示例来解决这个问题。
首先,让我们定义一个Intent对象并设置它的Action、Category和数据。这里我们将使用隐式Intent启动一个Activity:
```java
Intent intent = new Intent();
intent.setAction("com.example.ACTION_START");
intent.addCategory("android.intent.category.DEFAULT");
intent.setData(Uri.parse("data://example.com/data"));
```
这里我们设置了Action为`com.example.ACTION_START`、Category为`android.intent.category.DEFAULT`、数据为`data://example.com/data`。
接下来,让我们传递一些数据到Activity中。这里我们将使用`putExtra()`方法:
```java
intent.putExtra("key1", "value1");
intent.putExtra("key2", 123);
```
这里我们传递了两个参数,一个是字符串类型的`key1`,值为`value1`,另一个是整型的`key2`,值为`123`。
然后,我们可以使用`startActivityForResult()`方法启动Activity并等待结果:
```java
startActivityForResult(intent, 1);
```
这里我们使用了`startActivityForResult()`方法,第一个参数是我们定义的Intent对象,第二个参数是请求码,用于标识此次请求。
最后,在Activity中,我们可以使用`getIntent()`方法获取传递过来的数据:
```java
Intent intent = getIntent();
String value1 = intent.getStringExtra("key1");
int value2 = intent.getIntExtra("key2", 0);
```
这里我们使用了`getStringExtra()`和`getIntExtra()`方法获取传递过来的数据,如果数据不存在则返回默认值。
当Activity完成操作后,我们可以使用`setResult()`方法将结果返回给调用者:
```java
Intent intent = new Intent();
intent.putExtra("result", "success");
setResult(RESULT_OK, intent);
finish();
```
这里我们使用了`setResult()`方法将结果设置为`RESULT_OK`,并将结果数据放入Intent中,然后使用`finish()`方法关闭当前Activity。
这就是一个简单的使用隐式Intent启动Activity并完成数据传递和结果返回的示例。
阅读全文