誰でもrequestCode
渡される値startActivityForResult()
とその目的を親切にリストできますか? また、setResult
利用可能なパラメータについて説明できますRESULT_OK
か?他に何がありますか? 親切に助けてください。
4 に答える
で結果のアクティビティを起動すると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
}
}
}
には何でも好きなものを入れることができます。指定されrequestCode
た で開始した後に返されると予想される特定の情報を知ることができます。which が呼び出される は、情報を previous に渡したときに呼び出して、これが正しいデータであり、すべてがうまくいったことを確認する必要があります。Activity
requestCode
Activity
setResult(RESULT_OK)
Activity
requestCode
inは、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()
。
はrequestCode
あなた次第です。Activity
メソッドでどれが終了したかを認識するのに役立ちますonActivityResult()
。また、独自のアクティビティのみを使用している限り、結果パラメーターは多かれ少なかれあなた次第です。これは、呼び出されたアクティビティの呼び出し元への戻り値と考えることができます。