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

時間 2021-12-22 15:05:42

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介面。

AI 如何讓物件的位置不移動,另物件與它作中對齊

哈哈,這個問題我問過了。是rookie同學幫我解決的是這樣的 a,b?2個物體,都選中的情況下,再在a物體上點一下 注意不要按任何鍵 再點對齊面板,那麼,b物體就對齊a物體了。當然,如果你點下b物體,那就是a對齊b了。 先選中兩個要對齊的,然後在單機一下不動的那個,你會看到選中不動的那個加粗了,然後...

C 未將物件引用設定到物件的例項。

正確的寫法是 string connectionstring membership connectionstring sqlconnection con new sqlconnection connectionstring sqlcommand cmd new sqlcommand delete m...

兩個物件有是西周玉,那麼另是,兩個物件有一個是西周玉,那麼另一個是???

西周玉?這是大理石啊,別被騙了。再則,器型,雕刻紋飾,太搞笑了。朋友有一物件,一個小孩背上有兩個桃,好像玉石的東西誰能告知這是什麼 和藹的墨黑 潤度不夠,又是瓷白色,不值錢 鄧朋朋 看雕工就知道不是啥好貨。西周玉器是陪葬品還是什麼 現在傳世的玉器主要是從遺址中發掘的。在陵墓中發掘出來的玉石都是陪葬。...