1

我有5個活動,比如活動AB,C,DE在android中通過intent傳遞數據

每個活動都有兩個buttons是的&不,按鈕有我想要傳遞給活動E的數據。

我需要做以下的事情:

- >當用戶按下是/否A_activity的按鈕,通過意圖傳遞給活動E中的用戶遷移到B_activity但數據。 同樣在活動B用戶按下是/否按鈕,用戶將移動到活動C,但數據傳遞到活動E等等。

我做了很多搜索,但找不到解決方案有沒有辦法做到這一點。

+0

您必須通過intent啓動/移動到所需的活動並通過'SharedPreferences'傳遞數據檢查:https://stackoverflow.com/questions/15466673/how-to-send-data-through-intent -in-android-without-opening-another-activity – Zakir

+0

@zakir我是編程新手,首先我會學習如何使用SharedPreferences傳遞數據。我會學習它,如果有任何問題,我會讓你知道。但是有沒有其他方式可以通過打算來實現。 – AliShah

+0

看起來像你傳遞一個活動意圖的時刻,它將開始 - 沒有是o避免它 - 或不知道它.. – Zakir

回答

-1

你的確可以通過一個意圖傳遞數據返回到一個活動的onActivityResult()

動鄂啓動活動A

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); 

實施例A(基於E開始)

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

在E的onActivityResult()中的示例

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

雖然有很多方法可以完成移動數據,但這只是一個例子。

要推薦替代方法,請使用Handler而不是此方法。假設由於返回Activity處於暫停狀態,處理程序可能需要在單獨的類或全局靜態變量等中設置數據,並在Activity重新啓動時檢索或執行某些操作。所以它可以在任何類中做到很少或沒有代碼重複。只需檢索和使用。而Intent需要在每個類中重複代碼。它也很容易允許從任何活動轉到任何活動,如A-> B-> E-> C,而不需要E-> A-> E-> B。只是想一想。

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); 

希望這有助於。