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

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

生活随笔

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

Android中的onActivityResult和setResult方法的使用

發(fā)布時(shí)間:2023/11/30 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中的onActivityResult和setResult方法的使用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

$*********************************************************************************************$


博主推薦:


風(fēng)蕭兮兮易水寒,“天真”一去兮不復(fù)還。如何找到天真的那份快樂(lè)。小編傾力推薦app:?天真無(wú)諧


下載方式:豌豆莢,應(yīng)用寶,360手機(jī)助手,百度手機(jī)助手,安卓,91市場(chǎng)搜索:天真無(wú)諧


關(guān)注我們:查看詳情


$*********************************************************************************************$


如果你想在Activity中得到新打開(kāi)Activity關(guān)閉后返回的數(shù)據(jù),你需要使用系統(tǒng)提供的startActivityForResult(Intent intent,int requestCode)方法打開(kāi)新的Activity,新的Activity關(guān)閉后會(huì)向前面的Activity傳回?cái)?shù)據(jù),為了得到傳回的數(shù)據(jù),你必須在前面的Activity中重寫(xiě)onActivityResult(int requestCode, int resultCode,Intent data)方法:

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {Button button =(Button)this.findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener(){ //點(diǎn)擊該按鈕會(huì)打開(kāi)一個(gè)新的Activitypublicvoid onClick(View v) {//第二個(gè)參數(shù)為請(qǐng)求碼,可以根據(jù)業(yè)務(wù)需求自己編號(hào)startActivityForResult(new Intent(MainActivity.this, NewActivity.class), 1);}});}//第一個(gè)參數(shù)為請(qǐng)求碼,即調(diào)用startActivityForResult()傳遞過(guò)去的值//第二個(gè)參數(shù)為結(jié)果碼,結(jié)果碼用于標(biāo)識(shí)返回?cái)?shù)據(jù)來(lái)自哪個(gè)新Activity@Override protected voidonActivityResult(int requestCode, int resultCode, Intent data) {String result =data.getExtras().getString(“result”));//得到新Activity關(guān)閉后返回的數(shù)據(jù)} }? ??

當(dāng)新Activity關(guān)閉后,新Activity返回的數(shù)據(jù)通過(guò)Intent進(jìn)行傳遞,android平臺(tái)會(huì)調(diào)用前面ActivityonActivityResult()方法,把存放了返回?cái)?shù)據(jù)的Intent作為第三個(gè)輸入?yún)?shù)傳入,在onActivityResult()方法中使用第三個(gè)輸入?yún)?shù)可以取出新Activity返回的數(shù)據(jù)。

請(qǐng)求碼的作用:

使用startActivityForResultIntent intent . intrequestcode)方法打開(kāi)新的activity,我們需要為該方法傳遞一個(gè)請(qǐng)求碼。請(qǐng)求碼的值是根據(jù)業(yè)務(wù)需要由自已設(shè)定,

用于標(biāo)識(shí)請(qǐng)求來(lái)源。例如:一個(gè)Activity有兩個(gè)按鈕,點(diǎn)擊這兩個(gè)按鈕都會(huì)打開(kāi)同一個(gè)Activity,不管是那個(gè)按鈕打開(kāi)新Activity,當(dāng)這個(gè)新Activity關(guān)閉后,系統(tǒng)都會(huì)調(diào)用前面ActivityonActivityResult(int requestCode, int resultCode, Intent data)方法。在onActivityResult()方法如果需要知道新Activity是由那個(gè)按鈕打開(kāi)的,并且要做出相應(yīng)的業(yè)務(wù)處理,這時(shí)可以這樣做:

@Override public void onCreate(Bundle savedInstanceState) {....button1.setOnClickListener(newView.OnClickListener(){public void onClick(View v) {startActivityForResult (newIntent(MainActivity.this, NewActivity.class), 1);}});button2.setOnClickListener(newView.OnClickListener(){public void onClick(View v) {startActivityForResult (newIntent(MainActivity.this, NewActivity.class), 2);}}); @Override protected voidonActivityResult(int requestCode, int resultCode, Intent data) {switch(requestCode){case 1://來(lái)自按鈕1的請(qǐng)求,作相應(yīng)業(yè)務(wù)處理case 2://來(lái)自按鈕2的請(qǐng)求,作相應(yīng)業(yè)務(wù)處理}}

結(jié)果碼的作用:用于標(biāo)示返回結(jié)果的來(lái)源。

在一個(gè)Activity中,可能會(huì)使用startActivityForResult()方法打開(kāi)多個(gè)不同的Activity處理不同的業(yè)務(wù),當(dāng)這些新Activity關(guān)閉后,系統(tǒng)都會(huì)調(diào)用前面ActivityonActivityResult(int requestCode, int resultCode, Intentdata)方法。為了知道返回的數(shù)據(jù)來(lái)自于哪個(gè)新Activity,在onActivityResult()方法中可以這樣做(ResultActivityNewActivity為要打開(kāi)的新Activity)

public class ResultActivity extends Activity {.....ResultActivity.this.setResult(1, intent);ResultActivity.this.finish(); } public class NewActivity extends Activity {......NewActivity.this.setResult(2,intent);NewActivity.this.finish(); } public class MainActivity extends Activity { // 在該Activity會(huì)打開(kāi)ResultActivity和NewActivity@Override protected voidonActivityResult(int requestCode, int resultCode, Intent data) {switch(resultCode){case 1:// ResultActivity的返回?cái)?shù)據(jù)case 2:// NewActivity的返回?cái)?shù)據(jù)}} }

需要返回?cái)?shù)據(jù)或結(jié)果的,則使用startActivityForResult (Intent intent, intrequestCode),requestCode的值是自定義的,用于識(shí)別跳轉(zhuǎn)的目標(biāo)Activity。

跳轉(zhuǎn)的目標(biāo)Activity所要做的就是返回?cái)?shù)據(jù)/結(jié)果,setResult(int resultCode)只返回結(jié)果不帶數(shù)據(jù),或者setResult(int resultCode, Intent data)兩者都返回!而接收返回的數(shù)據(jù)/結(jié)果的處理函數(shù)是onActivityResult(intrequestCode, int resultCode, Intent data),這里的requestCode就是startActivityForResult的requestCode,resultCode就是setResult里面的resultCode,返回的數(shù)據(jù)在data里面

轉(zhuǎn)載于:https://www.cnblogs.com/roccheung/p/5797455.html

總結(jié)

以上是生活随笔為你收集整理的Android中的onActivityResult和setResult方法的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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