android通信組件機(jī)制–intent的初步認(rèn)識之獲取activity返回值and.doc_第1頁
android通信組件機(jī)制–intent的初步認(rèn)識之獲取activity返回值and.doc_第2頁
android通信組件機(jī)制–intent的初步認(rèn)識之獲取activity返回值and.doc_第3頁
android通信組件機(jī)制–intent的初步認(rèn)識之獲取activity返回值and.doc_第4頁
android通信組件機(jī)制–intent的初步認(rèn)識之獲取activity返回值and.doc_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Android 通信組件機(jī)制 Intent 的初步認(rèn)識之獲取Activity 返回值A(chǔ)nd.在之前的例子中,通過使用startActivity(Intent)方法啟動(dòng)了 Activity ,啟動(dòng)之后的兩個(gè)Activity 相互獨(dú)立沒有任何的關(guān)聯(lián)。但是在很多時(shí)候,啟動(dòng)后一個(gè)Activity 是為了讓用戶有進(jìn)一步的操作或者有某些特別的選擇,那么在關(guān)閉這個(gè)Activity 后,用戶的選擇信息要返回給原來的那個(gè)Activity ,即后啟動(dòng)的子 Activity 的部分信息要返回給父 Activity 。這個(gè)操作可以分為以下三個(gè)步驟:啟動(dòng)子 Activity設(shè)置子 Activity 的返回值在父 Act

2、ivity 中獲取返回值第一步:啟動(dòng)子Activity 的方法在這里不是用startActivity(Intent),而是需要調(diào)用startActivityForResult(Intent,requestCode)函數(shù),其中參數(shù)Intent 用來決定啟動(dòng)哪個(gè) Activity ,參數(shù) requestCode 是唯一標(biāo)識子 Activity 的請求碼。因?yàn)橐粋€(gè)父 Activity 可能有多個(gè)子 Activity ,而當(dāng)子 Activity 返回時(shí),父 Activity 都要調(diào)用相同的處理函數(shù),而這時(shí)我們就要用一個(gè)標(biāo)識來告訴父Activity返回的是哪個(gè)子Activity 進(jìn)而完成相對應(yīng)的動(dòng)作。例

3、如:code lang=javaint SUBACTIVITY1=1;Intent intent=newIntent(ActivityIntent.this,SubActivity1.class);startActivityForResult(intent,SUBACTIVITY1);/code第二步:在子Activity 中調(diào)用 setResult() 函數(shù)就能將所需的數(shù)據(jù)返回給父Activity 。這個(gè)函數(shù)有兩個(gè)參數(shù), 一個(gè)是結(jié)果碼,一個(gè)是返回值, 下例中 RESULT_OK就是結(jié)果碼用來表示子Activity 的返回狀態(tài) (結(jié)果碼都為整數(shù)類型) ;另一個(gè)參數(shù)result 是返回值,數(shù)據(jù)主

4、要以 Uri 形式提供返回給父Activity ,這個(gè)例子中我們把從EditText 的控件中得到的值通過Intent返回給父 Activity 。code lang=javaString uriString = editText.getText().toString();Uri data = Uri.parse(uriString);Intent result=new Intent(null,data);setResult(RESULT_OK,result);finish();/code第三步:當(dāng)關(guān)閉子Activity 時(shí),就會啟動(dòng)他的父Activity 的startActivityResu

5、lt()。代碼中首先對結(jié)果碼進(jìn)行判斷,如果返回值是 RESULT_OK則通過 getData() 函數(shù)獲取Intent 中的 Uri 數(shù)據(jù),否則不進(jìn)行操作。code lang=javaprivate static final int SUBACTIVITY1=1;private static final int SUBACTIVITY2=2;protected void onActivityResult(int requestCode, int resultCode, Intent data) / TODO Auto-generated method stubsuper.onActivityR

6、esult(requestCode, resultCode, data);/其中第一個(gè)參數(shù)表示是哪一個(gè)子Activity 的返回值, 第二個(gè)參數(shù)用來表示子Activity 的返回狀態(tài),第三個(gè)參數(shù)是返回?cái)?shù)據(jù),返回?cái)?shù)據(jù)類型為 Intent switch(requestCode) case SUBACTIVITY1: if(resultCode = RESULT_OK) Uri uriData=data.getData(); textView.setText(uriData.toString();break;case SUBACTIVITY2:break;/code例子中父 Activity 如下:

7、子 SubActivity1如下:這個(gè)例子中在子 SubActivity 中提供了一個(gè)輸入框以及“接受”和“取消”兩個(gè)按鈕,如果在輸入框中輸入信息后單擊“接受”按鈕,程序會把輸入框中的信息傳遞給其父Activity ,而如果單擊“取消”按鈕,則程序不會向其父Activity 傳遞任何信息。實(shí)現(xiàn)方法如下:(分別為兩個(gè)按鈕創(chuàng)建點(diǎn)擊事件,點(diǎn)擊“接受”按鈕時(shí)將 EditText控件的內(nèi)容作為數(shù)據(jù)保存在Uri 中,并用這個(gè) Uri 構(gòu)造 Intent ,將 Intent 作為返回值, RESULT_OK作為結(jié)果碼, 通過調(diào)用 setResult() 函數(shù)將返回值和結(jié)果碼傳遞給父 Activity ,最后

8、用 finish() 函數(shù)關(guān)閉當(dāng)前的子Activity ;點(diǎn)擊“取消”按鈕時(shí),RESULT_CANCEL作為結(jié)果碼, 而 null作為返回值,說明程序不會向父Activity 傳遞任何信息 )code lang=javaclass ButtonListener implements OnClickListenerOverridepublic void onClick(View v) / TODO Auto-generated method stubfinal EditText editText = (EditText)findViewById(R.id.edit);String str = editText.getText().toString();Uri data = Uri.parse(str);Intent result=new Intent(null,data);setResult(RESULT_OK,result);finish();class ButtonListener2 implements

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論