startActivityForResult(intent, requestCode)用法

依次打開Activity  A1--A2--A3--A4 這時候你如果想從第四個返回到第一Activity 的時候,就用到了startActivityForResult 這個方法了。

  1. startActivityForResult(intent, requestCode)
複製代碼

兩個參數 一個是第一好的意圖對象,另一個是請求代碼。

A1 的 intent 定義是

  1. Intent intent = new Intent(); intent.setClass(this,A2.class);
複製代碼

指定一個 int 作爲 requestCode 比如 startActivityForResult(intent, 1);

A2 的 intent 定義是

  1. Intent intent = new Intent(); intent.setClass(this,A3.class);
複製代碼

指定一個 int 作爲 requestCode 比如 startActivityForResult(intent, 1);

A3 的 intent 定義是

  1. Intent intent = new Intent(); intent.setClass(this,A4.class);
複製代碼

指定一個 int 作爲 requestCode 比如 startActivityForResult(intent, 1);

A4 添加一個返回按鈕 點擊的事件裏寫

  1. public void 點擊事件{
  2.   //this.setResult(int resultCode)
  3.     this.setResult(10)
  4.   this.finish();
  5. }
複製代碼

這時候點擊A4的返回按鈕時候,先設置 resultCode 給上一個 A3 來判斷,然後關閉A4

關閉A4觸發A3裏面的方法,onActivityResult(int requestCode, int resultCode, Intent data)

在這個方法裏面做判斷就行了。

前兩個參數分別是 我們設置的 requestCode 和 resultCode

  1. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  2.   // TODO Auto-generated method stub
  3.   super.onActivityResult(requestCode, resultCode, data);
  4.   if(requestCode == 1&& resultCode == 10){
  5.     this.setResult(10);
  6.     this.finish();
  7.   }
  8. }
複製代碼

此方法先匹配 requestCode 和 resultCode 然後設置 resultCode 在關閉A3,想同的道理關閉A2

這樣就返回A1了。

發佈了7 篇原創文章 · 獲贊 4 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章