[英]regarding passing data through intent
我有一個包含3 Activities
的應用程序。 如果應用程序是首次運行,則流程如下所示
Activity 1 ---> Activity 2 ---> Acitvity3
如果不是第一次運行,則跳過Activity2
Activity 1 ---> Acitvity3
活動3需要活動2的一些數據。
Bundle b = getIntent().getExtras();
Integer mInt= b.getInt(filename);
Acitvity 1不會發送此數據,如果從Acitvity1啟動了Activity 3(即,不是首次運行),將迫使應用程序崩潰。 如果Activity1調用了getExtras
,有什么方法可以跳過它?
每當從Activity1
或Activity2
啟動Activity3
,都傳遞一個字符串變量,如下所示。
如果來自ActivityA
intent.putExtra("from", "ActivityA");
如果來自ActivityB
intent.putExtra("from", "ActivityB");
並在Activity3中獲取該值,並檢查是否從Activity2獲取它的值。
String stringExtra = getIntent().getStringExtra("from");
if (stringExtra.equals("ActivityA")) {
}else {
}
Android中無法獲取稱為您當前活動的活動。 考慮一下,調用“活動”可能是主頁。
相反,您可以嘗試在Extras中傳遞另一個變量,說明哪個活動正在調用新活動(一個簡單的字符串,甚至是一個Class對象),然后根據被調用的活動,您可以決定如何處理一個簡單的“如果”語句。
希望這可以幫助 :)
添加額外的布爾值作為標志,以確定哪個活動啟動了Activity3。 在嘗試從其他函數中獲取mInt之前,請先閱讀布爾值,您可以在活動1的Intent啟動活動3中將其設置為false,在Activity2的Intent中將其設置為true。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.