2011-10-19 11 views
0

私のアクティビティには、Activity1、Activity2、TabActivity、childTab1、childtab2、ExtraActivityの6つのアクティビティがあります。子アクティビティの結果を親タブアクティビティに渡す

アプリケーションフロー:

Activity1 => Activity2 => TabActivity =>ChildTab1 or ChildTab2 => ExtraActivity 

は、今私はExtraActivityからActivity1にいくつかのデータを渡したいです。私はすべての活動を開始するのにStartActivityForResultを使用しています。

ExtraActivityChildTab1またはChildTab2にデータを送信することが可能であるが、私はできないActivity1に戻っTabActivityに、さらにバックActivity2に、最終的にそのデータを送信します。

助けてください!

更新:検索中に、私はこのポストを経由して私の解決策だ:私はあなたとTabActivityへChildTabXからonActivityResultメソッド-結果を委任することができると思い

How to return a result (startActivityForResult) from a TabHost Activity?

+0

を使用している可能性があります。 –

+0

私はインテントだけを使用しています。それはとても明白なので、私はそれを言及しませんでした。問題はtabactivityにタブを追加するときにstartactivityForResultを定義できないことです。なぜsetResultに設定されたインテントが失われているのでしょうか。 – mudit

+0

開始アクティビティを使用し、putString()を使用します。 –

答えて

0

を((TabActivity)のgetParent() ).onActivityResult()。ここでsetResultとfinish()をもう一度呼び出して、結果をActivity2に送信するだけです。アクティビティ2と同じ

0

アクティビティ間でデータを渡すためにアプリケーションコンテキストを使用できます。

アプリコンテキストを使用する方法。

アプリケーションクラスを拡張し、必要に応じて属性を追加します。したがって、あなたのアクティビティでは、アプリケーションコンテキストにアクセスしてデータを取得できます。アプリケーションコンテキストはシングルトンなので、すべてのアクティビティで同じインスタンスになります。

MyApplication appContext = (MyApplication) getApplicationContext(); 
appContext.myString = "YOUR DATA; 

他のアクティビティでも、同じ方法でそのビットマップにアクセスできます。

MyApplication appContext = (MyApplication) getApplicationContext(); 

ここで、文字列はappContextオブジェクトにあります。

また、マニフェストファイル内のアプリケーションタグに

android:name=".MyApplication" 

を追加する必要があります。

関連する問題