を引き起こす設定するには、このコードでは、活動を開始し:
あなたがstartActivityForResult(に追加の整数の引数を渡す必要があります)method.Youはそれを行うことが定数を定義するか、単純に整数を入力します。整数引数は、要求を識別する「要求コード」です。結果Intentを受け取ると、コールバックは同じ要求コードを提供します。これにより、アプリは結果を適切に識別し、その処理方法を決定できます。
static final int ASK_QUESTION_REQUEST = 1;
// Create an Intent to start SecondActivity
Intent askIntent = new Intent(FirstActivity.this, SecondActivity.class);
// Start SecondActivity with the request code
startActivityForResult(askIntent, ASK_QUESTION_REQUEST);
戻る結果:第2の活性クラスでの作業を完了した後
は、単純に結果を設定し、それが来るそのアクティビティを呼び出し、最後の仕上げ()文を書くことを忘れないでください。
// Add the required data to be returned to the FirstActivity
sendIntent.putExtra(Result_DATA, "Your Data");
// Set the resultCode to Activity.RESULT_OK to
// indicate a success and attach the Intent
// which contains our result data
setResult(RESULT_OK, sendIntent);
// With finish() we close the SecondActivity to
// return to FirstActivity
finish();
は結果を受け取る:あなたは、その後の活動とリターンで行われた場合
、システムがあなたの活動のonActivityResult()メソッドを呼び出します。このメソッドには、3つの引数が含まれます。
@ startActivityForResult()に渡したリクエストコード。 @A 2番目のアクティビティで指定された結果コード。これは、操作が成功した場合はRESULT_OK、操作が失敗した場合はRESULT_CANCELEDのいずれかです。 @An結果データを格納するインテント。詳細についてはPLSの
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// check if the request code is same as what is passed here it is 1
if (requestCode == ASK_QUESTION_REQUEST) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
final String result = data.getStringExtra(SecondActivity.Result_DATA);
// Use the data - in this case display it in a Toast.
Toast.makeText(this, "Result: " + result, Toast.LENGTH_LONG).show();
}
}
}
はこのデモを参照Getting a Result from An Activity
カスタムダイアログではどうすればよいですか? –
すべてがうまくいったら、requestCodeを1に設定してRESULT_OKを1にして、activityResultでif(requestCode == RESULT_OK)をチェックできます。 設定結果として、カスタムダイアログアクティビティでsetResultが使用されています。上記のように、キーと値のペアを持つデータを置くことができます。 onActivityResultでそのデータを取得するには、そのキー名を使用してその値を取得します。 –