编程实现Intent以隐式方法启动Activity,并完成数据传递和结果返回
时间: 2024-02-22 19:00:03 浏览: 123
Android Studio 实验二:Intent的使用
好的,以下是一个简单的例子,用于演示如何使用隐式Intent启动Activity并完成数据传递和结果返回:
首先,我们需要在AndroidManifest.xml中注册我们要启动的Activity,例如:
```xml
<activity android:name=".MyActivity">
<intent-filter>
<action android:name="com.example.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
```
这里我们为MyActivity注册了一个Intent过滤器,指定了action为com.example.action.VIEW,并添加了默认的category。
然后,在我们的代码中,我们可以使用以下代码启动Activity:
```java
Intent intent = new Intent("com.example.action.VIEW");
intent.putExtra("key1", "value1");
startActivityForResult(intent, requestCode);
```
这里我们使用与Manifest中相同的action字符串创建了一个Intent对象,并使用putExtra()方法添加了一个名为key1的字符串值。
最后,我们可以在MyActivity中使用以下代码来接收传递过来的数据,并在结束Activity时将结果返回给调用者:
```java
Intent intent = getIntent();
String value = intent.getStringExtra("key1");
Intent resultIntent = new Intent();
resultIntent.putExtra("result", "success");
setResult(Activity.RESULT_OK, resultIntent);
finish();
```
这里我们使用getIntent()方法获取传递过来的Intent对象,并使用getStringExtra()方法获取名为key1的字符串值。
然后,我们创建一个新的Intent对象resultIntent,并使用putExtra()方法添加一个名为result的字符串值。
最后,我们使用setResult()方法将结果返回给调用者,并使用finish()方法结束当前Activity的生命周期。
阅读全文