日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Activity两个启动方法的区别

發(fā)布時(shí)間:2025/3/20 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Activity两个启动方法的区别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

假設(shè)有倆個(gè)布局界面,第一個(gè)是要獲取信息Info的定義為MainActivity,第二個(gè)是提供需要的信息的定義為SecondActivity,信息格式定義為Info

(1)用startActivity(Intent intent)函數(shù)啟動(dòng)

????????用這種方式啟動(dòng),需把SecondActivity設(shè)置為程序的入口布局界面,輸入信息后用下面代碼把信息傳遞到MainActivity,然后SecondActivity關(guān)閉;

Info info =new Info(name.getText().toString(),age.getText().toString());String key1 = new String("info");String key2 = new String("people");Bundle data = new Bundle();data.putSerializable(key2, info);data.putSerializable(key1, info);Intent intent = new Intent(SecondActivity.this,MainActivity.class);intent.putExtras(data);startActivity(intent);finish();

????????MainActivity啟動(dòng)后,用下面的代碼獲取信息并顯示

Intent intent = getIntent();Bundle data = intent.getExtras();Info info =(Info)data.getSerializable("people");name.setText(info.getName());age.setText(info.getAge());

????????需要指明是,Info必須實(shí)現(xiàn)Serializable接口才可以序列化,Info不需要實(shí)現(xiàn)任何Serializable接口方法,只需要聲明實(shí)現(xiàn)接口,就可以進(jìn)行序列化;data.putSerializable可以把多個(gè)序列化的元素插入到data中,他們用key區(qū)分。

(2)用startActivityForResult(int requestCode,int resultCode,Intent intent)函數(shù)啟動(dòng)

????????用這種方式啟動(dòng),需把MainActivity設(shè)置為程序的入口布局界面,需要時(shí)(如按鈕)用下面代碼啟動(dòng)SecondActivity,SecondActivity在關(guān)閉時(shí)返回?cái)?shù)據(jù):

commit.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View source){Intent intent = new Intent(MainActivity.this,SecondActivity.class);startActivityForResult(intent,0); }});

????????SecondActivity啟動(dòng)后,用下面的代碼獲取信息返回給MainActivity

Info info =new Info(name.getText().toString(),age.getText().toString());String key = new String("info");Bundle data = new Bundle();data.putSerializable(key, info);Intent intent = getIntent();//Intent intentx = new Intent();也可以intent.putExtras(data);SecondActivity.this.setResult(0, intent);SecondActivity.this.finish();

????????這里留一個(gè)疑問(wèn),兩個(gè)布局之間的requestCode是怎么傳遞和識(shí)別的?

轉(zhuǎn)載于:https://my.oschina.net/u/779520/blog/79244

總結(jié)

以上是生活随笔為你收集整理的Activity两个启动方法的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。