Activity两个启动方法的区别
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)題。
- 上一篇: vim常用命令详解
- 下一篇: [转载] 羽毛球——学打羽毛球 09 步