分配帮助 - 多个活动传递意图



我试图将一些信息从我的第二个活动传递到第一个活动的一半正在发送,我似乎无法弄清楚为什么另一半不起作用。例如,在第二个活动中,一旦用户看到他们必须支付的总金额。他们可以通过单选按钮选择以"现金"或"信用卡"付款。如果通过现金,它会回到第一个活动,显示他们必须支付的金额。如果他们选择信用卡,则交易有 50% 的可能性无法通过(网络错误(,并在第一个活动中显示错误消息。我尝试通过使用 (0, 1( 中的随机数生成器来执行此操作,如果 rng 为 0,则交易成功,当前正在运行。如果 rng 为 1,则事务不成功。这是我目前需要帮助的,因为它目前没有显示不成功的交易。

我要提前感谢大家对我的帮助!

根据您的逻辑代码,在 SecondActivity 类中,您可以将credit()方法更改为

private void credit() {
Random rand = new Random();
int randnum = rand.nextInt( (1) + 1 );
Intent intentResult = new Intent();
String totalCost = "Total is: " + totalString + " inc. HST";
if (randnum == 0) {
intentResult.putExtra( "total", "Payment accepted.n" + totalCost);
} else {
// Pass back total cost in case payment is not successful.
intentResult.putExtra( "error", "Payment not accepted!n" + totalCost); 
}
setResult( RESULT_OK, intentResult);
finish();
Toast.makeText( SecondActivity.this, "Random #: " + randnum, Toast.LENGTH_LONG ).show();
}

和在主活动中

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == SECOND_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
String total = data.getStringExtra("total");
String error = data.getStringExtra("error");
if (total != null) {
txtDisplay.setText(total);
} else if (error != null) {
txtDisplay.setText(error);
} else {
// Something goes wrong!!!
}
}
}
}

使用 startActivitywithResult(( 从 A 启动活动 B,完成工作后完成 B,并使用 setResult(( 将结果发送回第一个活动,然后在 A 中的 onActivtyResult(( 中捕获结果。

参考链接 : https://www.javatpoint.com/android-startactivityforresult-example

https://developer.android.com/training/basics/intents/result

希望对您有所帮助。

最新更新