就假如A界面跳轉到了B界面并傳值接收了,我還想把A界面的值傳到C界面和D界面但不進行頁面跳轉應該怎么辦呢,網上搜的都是跳轉傳值,沒什么用呀
uj5u.com熱心網友回復:
可以通過broadcast或者廣播的方式。uj5u.com熱心網友回復:
不是很明白需求,C和D都還沒打開(也就是還沒有創建實體物件)就需要把值傳過去嗎?uj5u.com熱心網友回復:
EventBus
uj5u.com熱心網友回復:
如果C和D的界面是在堆疊內的,那么久使用普通廣播或者EventBus的普通事件就可以,如果是不在堆疊內的,那就需要使用粘性廣播或者EventBus的粘性事件uj5u.com熱心網友回復:
你這個需求沒有實際的意義。向兩個沒有打開過的activity傳值是不可能的。
可能你的業務需求不適合這樣傳值。
你可以把值保存在一個地方,等需要用到該值的activity啟動時,在oncreate方法里面取獲取檔案保存的值
uj5u.com熱心網友回復:
同上C D在堆疊內,EventBus傳值就可以,不在堆疊內,在A中將C D需要用到的值保存到SharedPreferences或者檔案中,C D要用/更新UI取值的時候就行了
uj5u.com熱心網友回復:
C和D界面是有打開操作的,但是并不是由A界面打開,就假如由A跳轉到B再由B頁面跳轉到C,但是C界面的資料在A界面中,能不能直接從A傳至C而不像A傳至B再由B傳至C那么麻煩呢
uj5u.com熱心網友回復:
一般常用的方法有幾種:
1. 單例類:把A的資料保存到單例類,啟動C和D時通過單例類取資料
2. SharePreference:適合保存一些少量的持久化資料。
3. 資料庫:適合保存大量的持久化資料
一般來說如果你的資料不需要持久化,可能 A 方法用得會多一些。
另外要說明一點,從A傳到B,再從B傳到C、D這種做法多數情況下是推薦這樣來做的。頁面間傳遞的資料大多數時候是key,而頁面要獲取的資料是根據key來動態獲取的。
uj5u.com熱心網友回復:
把值設定成靜態的,通過類來呼叫uj5u.com熱心網友回復:
EventBus,單例,通知,想怎么傳就怎么傳。uj5u.com熱心網友回復:
EventBus 比較好用,特別是傳遞的值比較大時uj5u.com熱心網友回復:
我有個笨方法,C和D都定義個靜態的變數,這樣直接將值賦給C和D的靜態變數就行了
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/102779.html
標籤:Android
下一篇:安卓基礎
