Android: アクティビティを呼び出したアクティビティに結果を返すようにするにはどうすればよいでしょうか? 質問する

Android: アクティビティを呼び出したアクティビティに結果を返すようにするにはどうすればよいでしょうか? 質問する

Locationなど、多くのアクティビティから呼び出すことができるアクティビティがあります。アクティビティでユーザーが自分の場所を入力すると、アクティビティは、この新しい場所を、それを呼び出したアクティビティに返します。Sign upOrderLocationLocation

したがって、Sign upアクティビティがアクティビティを呼び出すときはLocation、アクティビティにデータを返す必要がありますSign upOrderアクティビティは別のときに同じことを行います。

注記

コードを投稿すべきだと言われることは分かっていますが、私が求めているのはコードではなく、単にヒントやリンク、良いスレッドです。

ベストアンサー1

呼び出し元のアクティビティに結果を返すアクティビティを開始するには、以下のようにする必要があります。開始したアクティビティから結果を取得したことを確認するために、以下に示すようにリクエストコードを渡す必要があります。

startActivityForResult(new Intent(“YourFullyQualifiedClassName”),requestCode);

アクティビティでは、setData()結果を返すために を利用できます。

Intent data = new Intent();
String text = "Result to be returned...."
//---set the data to pass back---
data.setData(Uri.parse(text));
setResult(RESULT_OK, data);
//---close the activity---
finish();

最初のアクティビティでは、onActivityResult() に以下のコードを記述します。

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == request_Code) {
        if (resultCode == RESULT_OK) {
            String returnedResult = data.getData().toString();
            // OR
            // String returnedResult = data.getDataString();
        }
    }
}

あなたのコメントに基づいて編集します:3 つの文字列を返す場合は、Uri を使用する代わりに、インテントを持つキー/値のペアを使用します。

Intent data = new Intent();
data.putExtra("streetkey","streetname");
data.putExtra("citykey","cityname");
data.putExtra("homekey","homename");
setResult(RESULT_OK,data);
finish();

入れてくださいアクティビティの結果以下のように:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == request_Code) {
        if (resultCode == RESULT_OK) {
            String street = data.getStringExtra("streetkey");
            String city = data.getStringExtra("citykey");
            String home = data.getStringExtra("homekey");
        }
    }
}

おすすめ記事