用android studio编程实现internet以隐式方式启动Activity,并完成数据传递和结果返回
时间: 2024-05-17 21:19:10 浏览: 140
好的,这里是一个完整的例子,包括启动Activity、数据传递和结果返回。
首先,在你的AndroidManifest.xml文件中添加以下代码,以声明你的Activity可以接收隐式的Intent:
```xml
<activity android:name=".YourActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
</intent-filter>
</activity>
```
上面的代码声明了你的Activity可以接收浏览器打开的http链接。你需要把YourActivity替换成你的Activity类名,也可以根据你的需求修改其他参数。
接下来,你需要编写代码来启动这个Activity,并传递数据。以下是一个例子:
```java
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com"));
intent.putExtra("message", "Hello, World!");
startActivityForResult(intent, 1);
```
上面的代码创建了一个Intent对象,设置了Action为ACTION_VIEW,Data为http链接,同时通过putExtra方法传递了一个名为message的字符串数据。最后,使用startActivityForResult方法启动Activity,并传入一个请求码。
在你的Activity中,可以通过以下代码获取传递过来的数据:
```java
String message = getIntent().getStringExtra("message");
```
可以根据你的需求对数据进行处理。
最后,如果你需要将处理结果返回给调用者,可以通过以下代码完成:
```java
Intent intent = new Intent();
intent.putExtra("result", "Done!");
setResult(RESULT_OK, intent);
finish();
```
上面的代码创建了一个Intent对象,设置了返回的数据,然后通过setResult方法设置了返回结果为RESULT_OK,最后调用finish方法关闭Activity。
在调用者Activity中,可以通过以下代码获取返回的结果:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1 && resultCode == RESULT_OK) {
String result = data.getStringExtra("result");
// 处理返回结果
}
}
```
希望这个例子能帮助到你,祝你编程愉快!
阅读全文