2011-05-31 4 views
0

私は、activity_A、activity_B、activity_CのようにAndroidで3つのアクティビティを持っています。このactivity_A >>>>>>> activity_B >>>>>> activity_Cのようなシーケンスを呼び出します。現在私はactivity_Cにいますが、今はactivity_Bに入ることなく直接activity_Aにジャンプしたいと思います。また、いくつかのデータを渡す必要があります。Androidで特定のアクティビティから別の特定のアクティビティにジャンプするにはどうすればよいですか?

HOW?それのためのコードの一部を与えてください!

ありがとうございました!!! Arthur

答えて

0

A >>> BおよびB >>> Cから取得したのと同じコードを使用できます。

またはfinish()を使用してアクティビティを終了できます。あなたの場合は、Cでフラグを設定してBに完了を知らせ、Cでfinish()を呼び出します.Bでは、onResume()メソッドでそのフラグを探し、存在する場合はfinish() Bを探します。あなたのActivityCコードから

0

Intent intent = new Intent(this, ActivityA.class); 
intent.putExtra("a key string", data); 
startActivity(intent); 

ActivityAでは、あなたが使用してデータを復旧することができます

Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
    // here use the getters in extras to retrieve the appropiate data type 
    // for example if your data is a String the you would call 
    // extras.getString("a key string"); 
} 
0

具体的なコードはデータの種類によって異なります。しかし、あなたはこのような何か行うことができます:あなたは、スタックの一番上にActivity_Aの新しいコピーを追加したい場合は、以前と同様に

Intent i = new Intent(getApplicationContext(), ActivityA.class); 
i.putExtra("myData", someData); 
startActivity(i); 
+0

この状況では、アプリケーションコンテキストの使用をお勧めしません。予測不可能なアプリケーションリソースのリークが発生する可能性があります。http://developer.android.com/reference/android/content/Context.html#getApplicationContext() –

1

を、ちょうど同じようにそれを呼び出します。それ以外の場合は、Activity_Aの最初のコピーの内容に応じてlaunch modeを選択します。アクティビティ間でデータを渡す方法については、this question(方法2)を参照してください。

関連する問題