intent傳物件到另activity是傳遞的地址值還是

2021-12-22 15:09:10 字數 4484 閱讀 9459

1樓:

基本型別傳遞的是值,引用型別傳遞的是引用,即物件的地址,即如果修改了傳遞過來的物件,就相當於把引用的那個地址所對應的物件修改了。

引用型別可以這麼理解,物件就是一間房子,這個房子裡有椅子、桌子等屬性,物件的引用就相當於房子的鑰匙,必須通過鑰匙去修改這個房子的屬性(或者其他的),傳遞物件就相當於複製了一把鑰匙給了別人,別人修改接收到的這個物件,也就是修改了房子,也就是說原來的物件也被修改了。

我錯了。

以上這些適用於方法傳引數,引數如果是引用型的話。

昨天已經經過測試,intent之間傳遞物件的引用,其實是將物件拷貝了一份,然後將拷貝的物件的引用傳遞過去了,也就是說傳遞後得到的物件不是原物件本身,而只是傳遞之前的物件的拷貝,傳遞之後修改任意一個物件,都不會影響另外一個物件。

2樓:老人與海

傳遞的是物件本身。要不然也不用實現傳遞物件的特殊方法。

ps:android中intent中如何傳遞物件,有兩種方法,一種是 bundle.putserializable(key,object);另一種是bundle.

putparcelable(key, object);當然這些object是有一定的條件的,前者是實現了serializable介面,而後者是實現了parcelable介面。

android程式設計中用intent傳值能傳一個變數到另一個activity嗎?

3樓:匿名使用者

intent intent= new intent(當前activity.this, 要跳轉到的activity.class);

bundle bundle=new bundle();

bundle.putint("a", "值");//這你看你要傳什麼值,int--putint("key","值");

intent.putextras(bundle);//把這個值放到intent裡面

startactivity(intent);//跳轉

------------------------------------------

這裡已經跳轉到另一個activity了

在oncreat裡寫這樣的**

intent intent=new intent();

bundle b=new bundle();

//比如這個是string或者int型的:

string str=b.getstring("key");

int a=b.getint("key");

----------------------------------------

這樣就完全ok了,好好加油吧,這條路還很長呢

4樓:匿名使用者

intent it = new intent(activity.main.this, activity2.class);

bundle bundle=new bundle();

bundle.putint("a", "值");

it.putextras(bundle);

startactivity(it);

新activity中oncreate方法中取傳遞過來的值bundle bundle = this.getintent().getextras();

int a = bundle.getint("a");

intent能傳多個值嗎?

5樓:可以叫我表哥

intent翻譯為中文的意思是意圖,目的。它的作用就是呼叫某個元件去做某一個事情。比如從當前執行的activity跳轉到另一個activity,當前activity要啟動一個service或啟動一個broadcastreceive(廣播接收器),此時就需要用intent來完成。

簡單的說intent是各個元件的一個橋樑。既然充當了橋樑的角色,那麼intent就該可以傳遞資料,把當前的元件的資料傳遞到另一個元件去使用,那麼intent是如何來傳遞值的呢?通過intent類提供的setdata()和putextra()方法傳遞。

前一個引數是uri,是個標識比如一個檔案的路徑等。後一個引數可以是值也可以是物件,以鍵值對的形式傳遞。

activitya:

intent intent=new intent();

intent.setclass(activitya.this,activityb.class);

intent.putextra("extra", "welcome to ...");

startactivity(intent);

activityb:

intent intent=getintent();

string strin**alue=intent.getstringextra("extra");

如果把strin**alue的值改變,activitya中extra所對應的值不會變。

以上的列子是通過putextra()方法傳值的,現在看看物件的傳遞,是怎麼傳遞的?

activitya:

intent intent=new intent();

intent.setclass(activitya.this,activityb.class);

student s=new student("shao",20);

intent.putserializable("student", s);

startactivity(intent);

activityb:

intent intent=getintent();

student s=intent.getserializable("student");

現在如果把activityb中得到的student物件s ,改變一個值,如s.setname("yang");那麼activitya裡的s會變嗎?不會變,因為intent傳遞物件時,傳遞的是一個副本(深拷貝)。

所以在android中,intent進行資料傳遞時,基本資料型別和物件傳遞的都是副本,改變傳遞過來的值,不會改變原來的值。注意的是在進行物件傳遞的時候,該物件所對應的類要實現serializable介面或parcelable介面。

6樓:匿名使用者

能傳2個值呀 你接收的時候去獲取不同的值就行。 接收端的**這樣寫:string temp1=this.

getintent().getextra().getstring("fltnr")string temp2=this.

getintent().getextra().getstring("flt_tail_nbr")

intent傳值是如何傳的?

7樓:匿名使用者

intent翻譯為中文的意思是意圖,目的。它的作用就是呼叫某個元件去做某一個事情。比如從當前執行的activity跳轉到另一個activity,當前activity要啟動一個service或啟動一個broadcastreceive(廣播接收器),此時就需要用intent來完成。

簡單的說intent是各個元件的一個橋樑。既然充當了橋樑的角色,那麼intent就該可以傳遞資料,把當前的元件的資料傳遞到另一個元件去使用,那麼intent是如何來傳遞值的呢?通過intent類提供的setdata()和putextra()方法傳遞。

前一個引數是uri,是個標識比如一個檔案的路徑等。後一個引數可以是值也可以是物件,以鍵值對的形式傳遞。

activitya:intent intent=new intent();

intent.setclass(activitya.this,activityb.class);

intent.putextra("extra

", "welcome to ...");

startactivity(intent);activityb:intent intent=getintent();

string strin**alue=intent.getstringextra("extra");如果把strin**alue的值改變,activitya中extra所對應的值不會變。

intent.setclass(activitya.this,activityb.class);

student s=new student("shao",20);

intent.putserializable("student

", s);startactivity(intent);activityb:intent intent=getintent();student s=intent.getserializable("student");現在如果把activityb中得到的student物件s ,改變一個值,如s.

setname("yang");那麼activitya裡的s會變嗎?不會變,因為intent傳遞物件時,傳遞的是一個副本(深拷貝)。

所以在android中,intent進行資料傳遞時,基本資料型別和物件傳遞的都是副本,改變傳遞過來的值,不會改變原來的值。注意的是在進行物件傳遞的時候,該物件所對應的類要實現serializable介面或parcelable介面。

將鼓膜的振動傳遞到內耳的結構是A咽鼓管B

d試題分析bai 聽覺的形成過程如下du 外界的聲zhi波經過外耳道 傳到鼓膜dao,引起鼓膜的振動內 振動通過容聽小骨傳到內耳,刺激耳蝸內的聽覺感受器,產生神經衝動 神經衝動通過與聽覺有關的神經傳遞到大腦皮層的聽覺中樞,就形成了聽覺.將鼓膜的震動傳遞到內耳的結構是 a咽鼓管 b半規管 c耳蝸 d聽...

太陽的熱量到底是如何傳遞到地球上

太陽熱量傳遞到地球上的方式其實就是分子之間的熱運動。當太陽的熱量傳遞到地球上面的時候,地球內部的分子就會發生非常劇烈的運動,在這樣運動的過程中,地球的溫度就會增加。而沒有太陽的時候,其實理論上地球上的分子都是不會運動的。當分子間開始運動的時候,就可以把溫度不斷的傳遞下去。當地球上的溫度升高以後,那麼...

是家裡介紹的物件,家境比較好,對你也挺好的。另是現在的男朋友,家裡人一直不同意你們在一起

如果我覺得他們倆都挺好,我要選擇家境好的,畢竟生活需要一定的基礎,兩利相權取其重嘛。這個還真難以選擇,我只能跟你說,你要謹慎選擇,幸福還是靠自己決定的。沒有經濟基礎的感情是脆弱的,我相信你知道怎麼選擇!選擇家裡介紹的吧,因為他對你好,而你現在的男朋友,你沒有提到他對你怎麼樣,而且家人又反對,畢竟家人...