Android中Bundle的解析

2021-10-24 10:06:08 字數 1717 閱讀 3268

bundle主要用於傳遞資料;它儲存的資料,是以key-value(鍵值對)的形式存在的。

bundle經常使用在activity之間或者執行緒間傳遞資料,傳遞的資料可以是boolean、byte、int、long、float、double、string等基本型別或它們對應的陣列,也可以是物件或物件陣列。

當bundle傳遞的是物件或物件陣列時,必須實現serializable或parcelable介面。

bundle提供了各種常用型別的put***()/get***()方法,用於讀寫基本型別的資料。(各種方法可以檢視api)

在activity間傳遞資訊

bundle bundle = new bundle();        //得到bundle物件  

bundle.putstring("sff", "value值"); //key-"sff",通過key得到value-"value值"(string型)

bundle.putint("iff", 175); //key-"iff",value-175

intent.putextras(bundle); //通過intent將bundle傳到另個activity

startactivity(intent);

讀取資料

bundle bundle = this.getintent().getextras(); //讀取intent的資料給bundle物件     

string str1 = bundle.getstring("sff"); //通過key得到value

int int1 = bundle.getint("iff");

執行緒間傳遞

通過handler將帶有dundle資料的message放入訊息佇列,其他執行緒就可以從佇列中得到資料

message message=new message();//new乙個message物件     

message.what = message_what_2;//給訊息做標記

bundle bundle = new bundle(); //得到bundle物件

bundle.putstring("text1","訊息傳遞引數!"); //往bundle中存放資料

bundle.putint("text2",44); //往bundle中put資料

message.setdata(bundle);//mes利用bundle傳遞資料

mhandler.sendmessage(message);//handler將訊息放入訊息佇列

讀取資料

這裡用的是handler的handlemessage(message msg)方法處理資料

string str1=msg.getdata().getstring("text1");  

int int1=msg.getdata().getstring("text2");

bundle和intent區別

bundle只是乙個資訊的載體,內部其實就是維護了乙個map。

intent負責activity之間的互動,內部是持有乙個bundle的。

Android中Bundle的用法

bundle經常與intent一起用,在兩個activity間傳遞資料。個人目前的理解就是,如果intent傳遞的資料只有乙個,那麼就直接用intent的putextra 方法直接放進引數即可。那如果intent需要傳遞的是好幾個引數,或者是乙個類,那麼這時候就需要用到bundle bundle b...

Android中Bundle類的作用

bundle 類用作攜帶資料,它類似於 map,用於存放 key value 名值對形式的值。相對於 map,它提供了各種常用型別的 put get 方法,如 putstring getstring 和putint getint put 用於往bundle 物件放入資料,get 方法用於從 bund...

Android中Bundle類的作用

拷貝自360圖書館 android中bundle類的作用 bundle類用作攜帶資料,它類似於 map,用於存放 key value 名值對形式的值。相對於 map,它提供了各種常用型別的 put get 方法,如 putstring getstring 和putint getint put 用於往...