返回
Flutter与Android的混合开发(三):Flutter如何跳转到Activity,如何传值
见解分享
2023-10-09 21:34:37
在Flutter与Android的混合开发过程中,经常需要在Flutter页面和Activity之间进行跳转,并传递数据。本文将详细介绍如何在Flutter中实现跳转到Activity,以及如何进行数据传递。
一、在Flutter中跳转到Activity
要在Flutter中跳转到Activity,可以使用startActivity()
方法。此方法需要传入一个Intent
对象,该对象指定要启动的Activity以及要传递的数据。
// 创建Intent对象
Intent intent = Intent();
// 设置Intent的action,表明要启动的Activity
intent.action = Intent.ACTION_VIEW;
// 设置Intent的数据,表明要跳转到的Activity
intent.data = Uri.parse("https://flutter.dev");
// 启动Activity
startActivity(intent);
二、在Activity中接收数据
在Activity中接收数据可以使用getIntent()
方法。此方法返回一个Intent
对象,其中包含Flutter页面传递的数据。
// 获取Intent对象
Intent intent = getIntent();
// 从Intent中获取数据
String data = intent.getData().toString();
三、从Activity跳转到Flutter页面
从Activity跳转到Flutter页面可以使用FlutterActivity
类。此类提供了startActivity()
方法,用于启动Flutter页面。
// 创建FlutterActivity对象
FlutterActivity flutterActivity = new FlutterActivity();
// 设置FlutterActivity的Intent
Intent intent = new Intent(this, flutterActivity.class);
// 启动FlutterActivity
startActivity(intent);
四、从Flutter页面传值给Activity
从Flutter页面传值给Activity可以使用Activity.startActivityForResult()
方法。此方法需要传入一个Intent
对象和一个请求码。
// 创建Intent对象
Intent intent = Intent();
// 设置Intent的action,表明要启动的Activity
intent.action = Intent.ACTION_VIEW;
// 设置Intent的数据,表明要跳转到的Activity
intent.data = Uri.parse("https://flutter.dev");
// 启动Activity并设置请求码
startActivityForResult(intent, REQUEST_CODE);
在Activity中,可以使用onActivityResult()
方法获取Flutter页面返回的数据。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// 获取Flutter页面返回的数据
String data = data.getData().toString();
}
}
}