我在我的Android应用程序中有三个活动类。 第一个活动必须将意图传递给第二个和第三个活动,其中一个必须将意图传递给第二个。 在这种情况下,如何在同一活动中处理两个意图。 我认为我应该使用if,else条件。但我怀疑是否有一些技术可以在单个活动中处理多个意图?
我在我的Android应用程序中有三个活动类。 第一个活动必须将意图传递给第二个和第三个活动,其中一个必须将意图传递给第二个。 在这种情况下,如何在同一活动中处理两个意图。 我认为我应该使用if,else条件。但我怀疑是否有一些技术可以在单个活动中处理多个意图?
只是一个简单的if else条件:
if (intent.getStringExtra("com.example.ActivityOne.intentOne") != null) {
// do something
} else if (intent.getStringExtra("com.example.ActivityThree.intentThree") != null) {
// do something else
}
Activity
发出了当前的Intent
,以了解应该期望哪些extras
或者应该做什么,有时我会使用一个任意的String extra
并检查它是什么。因此,在发送Activity
时,可以发送类似以下内容的东西。Intent i = new Intent(FirstActivity.this, NextActivtiy.class);
i.putExtra("source", "first"); // source is the string to check where it is coming from
startActivity(i);
Activity
中。Intent intent = getIntent();
String from = intent.getStringExtra("source");
if ("first".equals(from))
{
// do stuff if from first Activity
}
else
{
// do other stuff
}
检查 extras 是否不为空
if (intent.getExtras() != null) {
String from = intent.getStringExtra("source");
if ("first".equals(from)){
// do stuff if from first Activity
}
else {
// do other stuff
}
}
extras
是否为空通常也是一个好主意。对于你的第二个问题,是的。当调用此活动时,它将处理它们中的每一个。 - codeMagicstartActivityForResult()
和onActivityResult()
。这是您的解决方案。onActivityResult()
,对吗? - Razgriz