2017-12-14 9 views
0

私は私の活動のナビゲーションはこの前のアクティビティに戻るときにfinish()を使用してインテントを送信する方法は? >結果 - - >エンド</p> <p>私のアプリケーションがどこ結果活動への主な活動からの意図を介してデータを送信します

主な活動<ように設定されているアプリケーションを作っています結果アクティビティがデータを計算して表示します。結果アクティビティは、計算結果をメインアクティビティに戻すか、条件が満たされたかどうかを判断し、終了アクティビティを開始します。エンドアクティビティはメインアクティビティに戻り、データを渡すことなくアプリケーションを開始することができます。

私の問題は、結果アクティビティからメインアクティビティにデータを効果的に戻す方法と、条件が満たされたときにエンドアクティビティにデータを送信するオプションがあることがわかりません。研究をしながらstartActivityForResultメソッドを見つけましたが、私のジレンマは、結果アクティビティが、条件が満たされたときに常にメインアクティビティに結果を返すとは限りません。

メインアクティビティと結果アチエイティビティでstartActivityForResultを使用し、条件が満たされた場合、または共有環境設定を使用した場合の新しいアクティビティをこのアクティビティで使用するとよいでしょうか?

+0

は、なぜあなたは3つのアクティビティの代わりのいずれかを使用している:

次に、あなたのMainActivityでは、あなたのような応答をonActivityResult()関数をオーバーライドして処理する必要が? – CommonsWare

+0

@CommonsWareこれを説明したり、リンクを提供したりできますか?私はそれを調べようとしましたが、自分でそれを実装するか、または完全に理解するのに十分なリソースが見つかりませんでした。 – Zac

+0

私はあなたに私がリンクを提供するために探しているものは何か分かっていません。あなたは3つの活動を実施することに決めました。私は理由を知らないので、なぜ私は私が行ったのかという質問をしました。 1つのアクティビティでこれをすべて行い、進行するにつれてUIを更新することができます(たとえば、ウィザードスタイルのUIライブラリ(https://github.com/Nimrodda/WizarDroid))。 – CommonsWare

答えて

1

このリンクをチェックアウト: startActivityForResult(意図、requestCodeを(たとえば、= 2))主な活動から:代わりにstartActivity(意図)を呼び出すのhttps://developer.android.com/training/basics/intents/result.html

を、あなたが呼び出す必要があります。

あなたのResultActivityでは、あなたのインテントオブジェクト内のすべてのエクストラと情報を取得する必要があります。 finish()を呼び出す前に、setData(requestCode = 2、intent)を呼び出す必要があります。

@Override 
 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
 
    // Check which request we're responding to 
 
    if (requestCode == 2) { 
 
     // Make sure the request was successful 
 

 
    } 
 
}

関連する問題

 関連する問題