3 回答

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個贊
捆綁包通常用于在各種Android活動之間傳遞數(shù)據(jù)。這取決于您要傳遞的值的類型,但bundle可以包含所有類型的值并將它們傳遞給新活動。
你可以像這樣使用它:
Intent intent = new...Intent(getApplicationContext(), SecondActivity.class);intent.putExtra("myKey", AnyValue); startActivity(intent);
您可以通過執(zhí)行以下操作獲取傳遞的值:
Bundle extras = intent.getExtras(); String tmp = extras.getString("myKey");
您可以在以下位置找到更多信息

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個贊
通過使用Bundle
和Intent
對象在活動之間傳遞數(shù)據(jù)。
你首先創(chuàng)建一個Bundle
對象
Bundle b = new Bundle();
然后,將存儲的字符串?dāng)?shù)據(jù)anystring
與bundle密鑰相關(guān)聯(lián)"myname"
b.putString("myname", anystring);
現(xiàn)在,創(chuàng)建一個Intent
對象
Intent in = new Intent(getApplicationContext(), secondActivity.class);
將bundle對象傳遞b
給intent
in.putExtras(b);
并開始第二項(xiàng)活動
startActivity(in);
在第二個活動中,我們必須訪問從第一個活動傳遞的數(shù)據(jù)
Intent in = getIntent();
現(xiàn)在,您需要從捆綁包中獲取數(shù)據(jù)
Bundle b = in.getExtras();
最后,獲取與key命名關(guān)聯(lián)的字符串?dāng)?shù)據(jù)的值 "myname"
String s = b.getString("myname");

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個贊
我必須補(bǔ)充一點(diǎn),活動使用bundle來將數(shù)據(jù)傳遞給自己。
當(dāng)屏幕旋轉(zhuǎn)或啟動另一個活動時,將protected void onSaveInstanceState(Bundle outState)
調(diào)用該方法,并銷毀活動。稍后,將創(chuàng)建另一個活動實(shí)例,并public void onCreate(Bundle savedInstanceState)
進(jìn)行調(diào)用。創(chuàng)建第一個活動實(shí)例時,該包為空; 如果bundle不為null,則活動將繼續(xù)由其前身啟動的某些業(yè)務(wù)。
Android會自動將文本保存在文本字段中,但它不會保存所有內(nèi)容,并且有時會出現(xiàn)細(xì)微的錯誤。
但是,最常見的反模式假設(shè)onCreate()
只是初始化。這是錯誤的,因?yàn)樗脖仨毣謴?fù)狀態(tài)。
有一個選項(xiàng)可以禁用這種“重新創(chuàng)建旋轉(zhuǎn)活動”行為,但它不會阻止與重啟相關(guān)的錯誤,它只會使它們更難以提及。
另請注意,當(dāng)活動將被銷毀時,唯一可以保證其調(diào)用的方法是onPause()
。(請參閱文檔中的活動生命周期圖。)
- 3 回答
- 0 關(guān)注
- 576 瀏覽
添加回答
舉報