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