Bundle類用於傳遞值

2021-07-02 06:50:41 字數 2715 閱讀 9521

android中bundle類的作用

bundle類用作攜帶資料,它類似於

map,用於存放

key-value

名值對形式的值。相對於

map,它提供了各種常用型別的

put***()/get***()

方法,如

:putstring()/getstring()

和putint()/getint()

,put***()

用於往bundle

物件放入資料,

get***()

方法用於從

bundle

物件裡獲取資料。

bundle

的內部實際上是使用了

hashmap

型別的變數來存放

put***()

方法放入的值:

public final class bundle implements parcelable, cloneable 

public void putstring(string key, string value) 

public string getstring(string key)  }

在呼叫bundle

物件的get***()

方法時,方法內部會從該變數中獲取資料,然後對資料進行型別轉換,轉換成什麼型別由方法的

***決定,

get***()

方法會把轉換後的值返回。

使用bundle在activity間傳遞資料

從源activity 中傳遞資料

//資料寫入intent

intent openwelcomeactivityintent=new intent();

bundle mybundelforname=new bundle();

mybundelforname.putstring("key_name",inname.gettext().tostring());

mybundelforname.putstring("key_age",inage.gettext().tostring());

openwelcomeactivityintent.putextras(mybundelforname);

openwelcomeactivityintent.setclass(androidbundel.this, welcome.class);

startactivity(openwelcomeactivityintent);

目標activity 中獲取資料

//從intent 中獲取資料

bundle mybundelforgetname=this.getintent().getextras();

string name=mybundelforgetname.getstring("key_name");

mytextview_showname.settext("歡迎您進入:"+name);

使用bundle在activity間傳遞資料2

從源請求activity 中通過乙個intent 把乙個服務請求傳到目標activity 中

private intent tonextintent;//intent 成員宣告

tonextintent=new intent();//intent 定義

tonextintent.setclass(twoactivityme3.this, secondactivity3.class);

//設定開啟的下乙個activity

startactivityforresult(tonextintent, request_ask);

//開啟intent 時候,把請求碼同時傳遞

在源請求activity 中等待intent 返回應答結果,通過過載onactivityresult()方法

@override

protected void onactivityresult(int requestcode,int resultcode, intent data) else if(resultcode==result_ok)}}

? 第乙個引數是你開啟請求intent時的對應請求碼,可以自己定義。

? 第二個引數是目標activity返回的驗證結果碼

? 第三個引數是目標activity返回的intent

目標activity 中傳送請求結果**,連同源activity 請求的資料一同繫結到bundle

中通過intent 傳回源請求activity 中

log與ddms(檢視log等資訊)

@override

protected void onactivityresult(int requestcode,

int resultcode, intent data) else if(resultcode==result_ok)}}

目標activity 中傳送請求結果**,連同源activity 請求的資料一同繫結到bundle

中通過intent 傳回源請求activity 中

backintent=new intent();

stringbundle=new bundle();

stringbundle.putstring("myname", name);

backintent.putextras(stringbundle);

setresult(result_ok, backintent);//返回activity結果碼

finish();

Bundle傳遞引數

bundle是在android中十分有用的一種類,我們通常用它來進行引數的傳遞。理解bundle可以把它當作乙個map,所以它的本質是乙個key value鍵值對。其中key值為乙個標識引數的string值,value即為該string對應的引數。使用bundle傳遞引數會在intent messa...

把仿函式類設計成用於值傳遞

1 錯誤示例 將仿函式類的資料和 或多型移到另乙個類中,然後給你的仿函式乙個指向這個新類的指標。比如,你想建立 乙個包含很多資料的多型仿函式類。templateclass bpfc public unary function 2 正確示例 建立乙個包含指向實現類的指標的小而單態的類,然後把所有資料和...

使用EventBus代替Bundle傳遞引數。

註冊 eventbus.getdefault register this 反註冊 eventbus.getdefault unregister this post方法 eventbus.getdefault post obj 接收方法 如果使用onevent作為訂閱函式,那麼該事件在哪個執行緒發布出...