Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android onActivityResult

Android onActivityResult

編輯:關於Android編程

 

對於intent主要的分類主要包括隱式意圖和顯式意圖。顯式意圖通常主要是啟動本應用中的Activity之間的數據,
而隱式意圖則常見於啟動系統中的某些特定的動作,比如打電話,或者是跨應用的Activity啟動。
一般來說:
顯式意圖:調用Intent.setComponent()或Intent.setClass()方法明確指定了組件名的Intent為顯式意圖,顯式意圖明確指定了Intent應該傳遞給哪個組件。
隱式意圖:沒有明確指定組件名的Intent為隱式意圖。 Android系統會根據隱式意圖中設置的動作(action)、類別(category)、
數據(URI和數據類型)找到最合適的組件來處理這個意圖。

1、MainActivity裡面的主要代碼
(1)當需要返回值時,那麼在啟動另一個Activity時要用到startActivityForResult(intent, REQUEST_CODE);
注意第二個參數是請求的int類型的值,這個值要在onActivityResult()方法中和requestCode做判斷的,
由此來判斷是啟動的某個Activity。
(2)onActivityResult()方法中的第二個參數就是SecondActivity傳回來的鍵,
第三個參數就是SecondActivity傳回來的鍵對應的值。
 

final int RESULT_CODE=101;
final int REQUEST_CODE=1;
public void enterSecond(View view) {
Intent intent=new Intent(this,SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i(TAG, onActivityResult+requestCode+requestCode+ resultCode=+resultCode);
if(requestCode==REQUEST_CODE) {
if(resultCode==RESULT_CODE) {
String result=data.getStringExtra(second);
textView.setText(result);
}
}
super.onActivityResult(requestCode, resultCode, data);
} 2、SecondActivity 類中的代碼:
這個裡面的RESULT_CODE、intent分別跟上段代碼中onActivityResult()方法中的第二個、第三個參數相對應。

final int RESULT_CODE=101;
public void closeButton(View view) {
Intent intent=new Intent();
intent.putExtra(second, I am second!);
setResult(RESULT_CODE, intent);
finish();
} 3、除此之外,onActivityResult()方法中的第二個參數resultCode還有系統自帶的一些參數,也就是說,如果我們啟動的intent是隱式意圖,那麼可以用Activity類中RESULT_OK來表示操作已經順利結束。
例如,調用系統圖庫的返回,請看代碼:

final int CROP_PIC_REQUESTCODE = 23; final int SELECT_PICTURE = 21;
if (resultCode == RESULT_OK && requestCode == SELECT_PICTURE) {
System.out.println(調用圖庫返回,關閉activity);
Intent intent1 = new Intent(com.android.camera.action.CROP);
intent1.setDataAndType(data.getData(), image/*);
intent1.putExtra(crop, true);
intent1.putExtra(aspectX, 1);
intent1.putExtra(aspectY, 1);
intent1.putExtra(outputX, 80);
intent1.putExtra(outputY, 80);
intent1.putExtra(return-data, true);
startActivityForResult(intent1, CROP_PIC_REQUESTCODE);
}

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved