3 回答

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

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
通過(guò)使用Bundle
和Intent
對(duì)象在活動(dòng)之間傳遞數(shù)據(jù)。
你首先創(chuàng)建一個(gè)Bundle
對(duì)象
Bundle b = new Bundle();
然后,將存儲(chǔ)的字符串?dāng)?shù)據(jù)anystring
與bundle密鑰相關(guān)聯(lián)"myname"
b.putString("myname", anystring);
現(xiàn)在,創(chuàng)建一個(gè)Intent
對(duì)象
Intent in = new Intent(getApplicationContext(), secondActivity.class);
將bundle對(duì)象傳遞b
給intent
in.putExtras(b);
并開始第二項(xiàng)活動(dòng)
startActivity(in);
在第二個(gè)活動(dòng)中,我們必須訪問(wèn)從第一個(gè)活動(dòng)傳遞的數(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個(gè)贊
我必須補(bǔ)充一點(diǎn),活動(dòng)使用bundle來(lái)將數(shù)據(jù)傳遞給自己。
當(dāng)屏幕旋轉(zhuǎn)或啟動(dòng)另一個(gè)活動(dòng)時(shí),將protected void onSaveInstanceState(Bundle outState)
調(diào)用該方法,并銷毀活動(dòng)。稍后,將創(chuàng)建另一個(gè)活動(dòng)實(shí)例,并public void onCreate(Bundle savedInstanceState)
進(jìn)行調(diào)用。創(chuàng)建第一個(gè)活動(dòng)實(shí)例時(shí),該包為空; 如果bundle不為null,則活動(dòng)將繼續(xù)由其前身啟動(dòng)的某些業(yè)務(wù)。
Android會(huì)自動(dòng)將文本保存在文本字段中,但它不會(huì)保存所有內(nèi)容,并且有時(shí)會(huì)出現(xiàn)細(xì)微的錯(cuò)誤。
但是,最常見的反模式假設(shè)onCreate()
只是初始化。這是錯(cuò)誤的,因?yàn)樗脖仨毣謴?fù)狀態(tài)。
有一個(gè)選項(xiàng)可以禁用這種“重新創(chuàng)建旋轉(zhuǎn)活動(dòng)”行為,但它不會(huì)阻止與重啟相關(guān)的錯(cuò)誤,它只會(huì)使它們更難以提及。
另請(qǐng)注意,當(dāng)活動(dòng)將被銷毀時(shí),唯一可以保證其調(diào)用的方法是onPause()
。(請(qǐng)參閱文檔中的活動(dòng)生命周期圖。)
- 3 回答
- 0 關(guān)注
- 565 瀏覽
添加回答
舉報(bào)