1

アクティビティがABCDEの5つのアクティビティがあります。アンドロイドでインテントでデータを渡す

各アクティビティには2つがありますbuttonsはい&いいえ、ボタンにはアクティビティEに渡したいデータがあります。

私は物事を次の操作を行う必要があります。

- >ときA_activityのユーザープレスイエス/ノーボタン、意図を経て活動Eに渡さB_activityが、データへのユーザーの移行。 同様に、アクティビティBのユーザが「はい/いいえ」ボタンを押すと、ユーザはアクティビティCに移動しますが、データはアクティビティEに渡されます。

私は多くの検索を行っていますが、これを行う方法はありません。

あなたが実際に活動のonActivityResult()

活動Eの出発活動(Eから開始)で

final int RESULT_FOR_CLASS_DATA = 12; // pick a number to use 
String returnedData; 

Intent intent = new Intent(this, ActivityA.class); 
startActivityForResult(intent, RESULT_FOR_CLASS_DATA); 

Intent data = new Intent(); 
data.putExtra("ReturnData", dataToReturn); 
setResult(RESULT_OK, data); 
finish(); // returning to Activity E 

に意図を通じて戻ってデータを渡すことができ

+0

インテントで目的のアクティビティを起動/移動し、SharedPreferences経由でデータを渡す必要があります。これを確認してください:https://stackoverflow.com/questions/15466673/how-to-send-data-through-intent -in-android-without-opening-another-activity – Zakir

+0

@zakirプログラミングに慣れていないので、最初にSharedPreferencesを使ってデータを渡す方法を学びます。私はそれを学び、問題があれば教えてくれます。意図をもってそうする他の方法があります。 – AliShah

+0

アクティビティにインテントを渡す瞬間のように見える - それは避けられない - それを意識していない。 – Zakir

答えて

-1

E

のonActivityResult()の例
if (requestCode == RESULT_FOR_CLASS_DATA) { 
    returnedData = data.getStringExtra("ReturnData")); 
} 

データの移動にはさまざまな方法がありますが、これは単なる一例です。

代わりに、この代わりにハンドラを使用することをお勧めします。 returnアクティビティが一時停止されているため、ハンドラは別のクラスまたはグローバル静的変数などにデータを設定する必要があり、アクティビティの再起動時などに取得する必要があるとします。したがって、どのクラスでもコードの重複をほとんどまたは全くしないで行うことが可能です。ちょうど検索して使用してください。インテントはすべてのクラスでコードの重複が必要です。 E-> A-> E-> Bの代わりに、A→B→E→Cのようなアクティビティーへの移動も簡単に許可されます。考えるだけのこと。データを渡す

0

使用SharedPreferencesクラス:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putString("key", "Value"); 
editor.commit(); 

その後の活動Eで:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
String value = sharedPref.getString("key", defaultValue); 

・ホープ、このことができます。

関連する問題