4

Android Application に 3 つのアクティビティ クラスがあります。最初のアクティビティは 2 番目のアクティビティにインテントを渡す必要があり、3 番目のアクティビティは 2 番目のアクティビティにインテントを渡す必要があります。この場合、同じアクティビティで 2 つのインテントを処理するにはどうすればよいですか。if ,else 条件を使うべきだと思いました。しかし、単一のアクティビティで複数のインテントを処理する手法があるかどうかは疑問です?

4

3 に答える 3

1

とを使用startActivityForResult()onActivityResult()ます。これがあなたの解決策です。

于 2013-10-24T12:57:51.160 に答える
1

何が期待されるか、または何をすべきかを知るためにActivity、現在の発行元を知りたいだけの場合は、任意のものを使用して、それが何であるかを確認することがあります。したがって、次のようなものを送信する際にIntentextrasString extraActivity

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 が null でないかどうかを確認する

 if (intent.getExtras() != null) {
    String from = intent.getStringExtra("source");
    if ("first".equals(from)){
        // do stuff if from first Activity
    }
    else {
        // do other stuff
    }
}
于 2013-10-24T13:06:54.987 に答える
1

単純な if else 条件:

if (intent.getStringExtra("com.example.ActivityOne.intentOne") != null) {
   // do something
} else if (intent.getStringExtra("com.example.ActivityThree.intentThree") != null) {
   // do something else
}
于 2013-10-24T12:58:41.150 に答える