activity返回值-創(chuàng)新互聯(lián)

Activity返回值

創(chuàng)新互聯(lián)建站公司2013年成立,先為象山等服務建站,象山等地企業(yè),進行企業(yè)商務咨詢服務。為象山企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

使用startActivity方式啟動的Activity和它的父Activity無關(guān),當它關(guān)閉時也不會提供任何反饋。

可變通的,你可以啟動一個Activity作為子Activity,它與父Activity有內(nèi)在的聯(lián)系。當子Activity關(guān)閉時,它會觸發(fā)父Activity中的一個事件處理函數(shù)。子Activity最適合用在一個Activity為其它的Activity提供數(shù)據(jù)(例如用戶從一個列表中選擇一個項目)的場合。

子Activity的創(chuàng)建和普通Activity的創(chuàng)建相同,也必須在應用程序的manifest中注冊。任何在manifest中注冊的Activity都可以用作子Activity。

啟動子Activity

startActivityForResult方法和startActivity方法工作很相似,但有一個很重要的差異。Intent都是用來決定啟動哪個Activity,你還可以傳入一個請求碼。這個值將在后面用來作為有返回值Activity的唯一ID。

下面的代碼顯示了如何啟動一個子Activity:

  private static final int SHOW_SUBACTIVITY = 1;

  Intent intent = new Intent(this, MyOtherActivity.class);

  startActivityForResult(intent, SHOW_SUBACTIVITY);

和正常的Activity一樣,子Activity可以隱式或顯式啟動。下面的框架代碼使用一個隱式的Intent來啟動一個新的子Activity來挑選一個聯(lián)系人:

  private static final int PICK_CONTACT_SUBACTIVITY = 2;

  Uri uri = Uri.parse(“content://contacts/people”);

  Intent intent = new Intent(Intent.ACTION_PICK, uri);

  startActivityForResult(intent, PICK_CONTACT_SUBACTIVITY);

返回值

當子Activity準備關(guān)閉時,在finish之前調(diào)用setResult來給調(diào)用的Activity返回一個結(jié)果。

setResult方法帶兩個參數(shù):結(jié)果碼和表示為Intent的負載值。結(jié)果碼是運行子Activity的結(jié)果,一般是Activity.RESULT_OK或Activity.RESULT_CANCELED。在一些情況下,你會希望使用自己的響應代號來處理特定的應用程序的選擇;setResult支持任何整數(shù)值。

作為結(jié)果返回的Intent可以包含指向一個內(nèi)容(例如聯(lián)系人,電話號碼或媒體文件)的URI和一組用來返回額外信息的Extra。

接下來的代碼片段節(jié)選自子Activity的onCreate方法,顯示了怎樣向調(diào)用的Activity返回不同的結(jié)果:

  Button okButton = (Button) findViewById(R.id.ok_button);

  okButton.setOnClickListener(new View.OnClickListener() {

      public void onClick(View view){

          Uri data = Uri.parse(“content://horses/” + selected_horse_id);

          Intent result = new Intent(null, data);

          result.putExtra(IS_INPUT_CORRECT, inputCorrect);

          result.putExtra(SELECTED_PISTOL, selectedPistol);

          setResult(RESULT_OK, result);

          finish();

      }

  });

  Button cancelButton = (Button) findViewById(R.id.cancel_button);

  cancelButton.setOnClickListener(new View.OnClickListener() {

      public void onClick(View view){

          setResult(RESULT_CANCELED, null);

          finish();

      }

  });

處理子Activity的結(jié)果

當子Activity關(guān)閉時,它的父Activity的onActivityResult事件處理函數(shù)被觸發(fā)。

重寫這個方法來處理從子Activity返回的結(jié)果。onActivityResult處理器接受好幾個參數(shù):

? 請求碼

曾經(jīng)用來啟動子Activity的請求碼。

? 結(jié)果碼

結(jié)果碼是由子Activity設置的,用來顯示它的結(jié)果。它可以是任何整數(shù)值,但典型的值是Activity.RESULT_OK和Activity.RESULT_CANCELLED。

如果子Activity非正常關(guān)閉或在關(guān)閉時沒有指定結(jié)果碼,結(jié)果碼都是Activity.RESULT_CANCELED。

? 數(shù)據(jù)

一個Intent來打包任何返回的數(shù)據(jù)。依賴于子Activity的目的,它可能會包含一個代表特殊的從列表中選擇的數(shù)據(jù)的URI??勺兺ǖ模蝾~外的,子Activity可以使用“extras”機制以基礎值的方式返回臨時信息。

下面的框架代碼實現(xiàn)了一個Activity中的onActivityResult事件處理函數(shù):

  private static final int SHOW_SUB_ACTIVITY_ONE = 1;

  private static final int SHOW_SUB_ACTIVITY_TWO = 2;

  @Override

  public void onActivityResult(int requestCode, int resultCode, Intent data) {

      super.onActivityResult(requestCode, resultCode, data);

      switch(requestCode){

          case (SHOW_SUB_ACTIVITY_ONE) :

          {

              if (resultCode == Activity.RESULT_OK){

                  Uri horse = data.getData();

                  boolean inputCorrect = data.getBooleanExtra(IS_INPUT_CORRECT, false);

                  String selectedPistol = data.getStringExtra(SELECTED_PISTOL);

              }

              break;

          }

          case (SHOW_SUB_ACTIVITY_TWO) :

          {

              if (resultCode == Activity.RESULT_OK){

                  // TODO: Handle OK click.

              }

              break;

          }

      }

  }

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。

文章標題:activity返回值-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://muchs.cn/article48/cdgeep.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、搜索引擎優(yōu)化、移動網(wǎng)站建設、品牌網(wǎng)站設計網(wǎng)站排名、電子商務

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營