来自 android studio 上不同 activity 的调用函数结果
Call function result from different activity on android studio
我在网上找到了为 Android 创建二维码扫描器应用程序的教程。它工作得很好,但扫描的输出是一个 toast 通知,如您在代码中所见:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (resultCode == Activity.RESULT_OK) {
val result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data)
if (result != null) {
if (result.contents == null) {
Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show()
} else {
Toast.makeText(this, "Scanned: " + result.contents, Toast.LENGTH_LONG).show()
}
} else {
super.onActivityResult(requestCode, resultCode, data)
}
}
}
}
我想做的是让扫描的代码在应用程序本身内部启动 url。因为我希望页面托管在应用程序本身中,所以我所做的是使用加载内部 html 页面的 webview 创建一个活动。
我拿了扫描码并更改了打开 webview 的积极结果 activity:
startActivity(Intent(this, PagInfoActivity::class.java))
效果很好。只要检测到二维码,应用程序就会自动加载所需的 activity。我知道这并不理想,因为 QR 码 link 本身并未用于打开页面,但我试图做的是在 webview 加载时使用该扫描结果。我用文本字符串而不是 URL 创建了 QRCode,这样我就可以像这样将它们注入到 webview 的 loadURL 中:
WebView.loadUrl("file:///android_asset/*QRCODE string*.html");
是否可以从 MainActivity 调用 result.contents
?
您可以通过多种方式实现这一目标。第一个选项可以是 Explicit Intents
例如,
您需要将其作为额外传递:
Intent i = new Intent(this, PagInfoActivity.class);
i.putExtra("result", result.contents);
startActivity(i);
然后像这样从 PagInfoActivity 中提取它:
Intent intent = getIntent();
String result= intent.getExtras().getString("result");
我在网上找到了为 Android 创建二维码扫描器应用程序的教程。它工作得很好,但扫描的输出是一个 toast 通知,如您在代码中所见:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (resultCode == Activity.RESULT_OK) {
val result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data)
if (result != null) {
if (result.contents == null) {
Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show()
} else {
Toast.makeText(this, "Scanned: " + result.contents, Toast.LENGTH_LONG).show()
}
} else {
super.onActivityResult(requestCode, resultCode, data)
}
}
}
}
我想做的是让扫描的代码在应用程序本身内部启动 url。因为我希望页面托管在应用程序本身中,所以我所做的是使用加载内部 html 页面的 webview 创建一个活动。
我拿了扫描码并更改了打开 webview 的积极结果 activity:
startActivity(Intent(this, PagInfoActivity::class.java))
效果很好。只要检测到二维码,应用程序就会自动加载所需的 activity。我知道这并不理想,因为 QR 码 link 本身并未用于打开页面,但我试图做的是在 webview 加载时使用该扫描结果。我用文本字符串而不是 URL 创建了 QRCode,这样我就可以像这样将它们注入到 webview 的 loadURL 中:
WebView.loadUrl("file:///android_asset/*QRCODE string*.html");
是否可以从 MainActivity 调用 result.contents
?
您可以通过多种方式实现这一目标。第一个选项可以是 Explicit Intents
例如,
您需要将其作为额外传递:
Intent i = new Intent(this, PagInfoActivity.class);
i.putExtra("result", result.contents);
startActivity(i);
然后像这样从 PagInfoActivity 中提取它:
Intent intent = getIntent();
String result= intent.getExtras().getString("result");