7

誰でもrequestCode渡される値startActivityForResult()とその目的を親切にリストできますか? また、setResult利用可能なパラメータについて説明できますRESULT_OKか?他に何がありますか? 親切に助けてください。

4

4 に答える 4

8

で結果のアクティビティを起動するとrequestCode >= 0、このコードはonActivityResult()、2 番目のアクティビティが終了したときに最初のアクティビティに返されます。 から複数Activityの結果のアクティビティを開始できますActivity。いずれの場合もstartActivityForResult()、requestCode を渡すメソッドへのコールバックを取得します。ではonActivityResult()、requestCode を使用して、コールバックを受信したアクティビティを確認できます。したがって、コールバックを区別するために、Activities異なる requestCode を使用します。

例:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Intent i = new Intent(FirstActivity.this, SecondActivity.class);
    startActivityForResult(i, 1);
    Intent i = new Intent(FirstActivity.this, ThirdActivity.class);
    startActivityForResult(i, 2);
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

 if (requestCode == 1) {

  if (resultCode == RESULT_OK) {
  //Get the result from SecondActivity
  }

  }
 else  if (requestCode == 2) {
  if (resultCode == RESULT_OK) {
  //Get the result from ThirdActivity
  }
 }
}
于 2012-09-03T10:56:15.017 に答える
3

には何でも好きなものを入れることができます。指定されrequestCodeた で開始した後に返されると予想される特定の情報を知ることができます。which が呼び出される は、情報を previous に渡したときに呼び出して、これが正しいデータであり、すべてがうまくいったことを確認する必要があります。ActivityrequestCodeActivitysetResult(RESULT_OK)Activity

于 2012-09-03T10:46:41.490 に答える
2

requestCodeinは、startActivityForResult()リクエストにIDを割り当てるために使用されます。これにより、リクエストはこのコードで識別できますonActivityResult()。誰かがコードに従って、アクティビティBとCで2つのアクティビティを開始するコードを書いた場合のように

startActivityForResult(new Intent(A.this, B.class), 1);
startActivityForResult(new Intent(A.this, C.class), 2);

これで、どちらが結果を返したonActivityResult()かを認識できます。Activity

このsetResult()メソッドはIntent、結果を設定するために使用されresultCodeます。結果は大丈夫、またはキャンセルされたとresultCode私たちは言います。onActivityResult()結果でIntent設定したで、メソッドによっていくつかのデータを渡すために使用できますintent.putExtra()

于 2012-09-03T10:53:10.673 に答える
2

requestCodeあなた次第です。Activityメソッドでどれが終了したかを認識するのに役立ちますonActivityResult()。また、独自のアクティビティのみを使用している限り、結果パラメーターは多かれ少なかれあなた次第です。これは、呼び出されたアクティビティの呼び出し元への戻り値と考えることができます。

于 2012-09-03T10:48:58.573 に答える