天天看點

Android--Activity中使用Intent傳值

Intent,又稱為意圖,是一種運作時綁定機制,它能在程式運作的過程中連結兩個不同的元件(Activity、Service、BroadcastReceiver)。通過Intent,程式可以向Android表達某種請求或意願,Android會根據意願的内容選擇适當的元件來請求。

    在這些元件之間的通訊中,主要是由Intent協助完成的。Intent負責對應用中一次操作的動作、動作涉及資料、附加資料進行描述,Android則根據此Intent的描述,負責找到對應的元件,将Intent傳遞給調用的元件,并完成元件的調用。是以,Intent在這裡起着一個媒體中介的作用,專門提供元件互相調用的相關資訊,實作調用者與被調用者之間的解耦。

  通過Intent請求Activity,必須在AndroidManifest.xml檔案中對被請求的Activity新增标簽配置,否則會導緻錯誤。

   

  Intent一般包含兩個主要資訊,action、data。

action:表示這個Intent此次操作的動作。

data:表示這次動作涉及的資料。

  通過一個例子來展示Activity中使用Intent導向新Activity并傳遞資料。此程式僅在兩個頁面之間互相跳轉,但是每次跳轉會建立新的Activity,是以在startActivity()之後需要調用finish()銷毀目前Activity,如果不銷毀,多次跳轉後,程式的Activity棧中會存放多個Activity,點選裝置的傳回按鈕,會發現會一直向後退。

  主要步驟:

建立Android項目,增加新布局檔案other.xml,新增Activity類otherActivity.class,用于接受Intent并展示other.xml。

在MainActivity類中,聲明一個Intent類,通過Intent的構造函數指明源和目标。

獲得Intent後,使用Intent.putExtra()方法對其傳入資料。

調用Activity.startActivity啟動這個Intent。

在otherActivity類中,使用Activity.getIntent()獲得目前Activity的Intent。

獲得Intent後,使用Intent.getXxxExtra()方法獲得其中儲存的資料。

在AndroidManifest.xml配置otherActivity節點。

示例代碼

步驟2--3:

<a></a>

步驟4--5:

步驟7:

從Activity中傳回資料

  上面例子中隻是介紹了Activity通過Intent傳遞資料,然而在實際應用中,不僅僅需要向Activity傳遞資料,而且要從Activity中傳回資料,雖然傳回資料和傳遞資料類似,但是還是有部分差別。

  主要差別如下:

傳遞資料需要使用Activity.startActivityForResult()方法啟動Activity,需要傳遞請求碼,而不是Activity.startActivity()。

傳回資料的時候,調用Activity.setResult()方法設定傳回Intent以及傳回碼。

需要重寫源Activity的onActivityResult()方法以便于接受傳回的Intent,在onActivityResult()中會判斷請求碼和響應碼。

  通過一個例子說明從Activity傳回資料。此程式有兩個Activity,在MainActivity中輸入加法運算的計算數,跳轉到otherActivity中輸入計算結果,并在點選傳回後,把計算結果輸出到MainActivity中。

MainActivity: 

otherActivity:

本文轉自承香墨影部落格園部落格,原文連結:http://www.cnblogs.com/plokmju/p/3140607.html,如需轉載請自行聯系原作者

繼續閱讀