Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android筆記 Intent用法總結

Android筆記 Intent用法總結

編輯:關於Android編程

Intent:

官方解釋:

An intent is an abstract description of an operation to be performed. It can be used with startActivity to launch an Activity, broadcastIntent to send it to any interested BroadcastReceiver components, and startService(Intent) or bindService(Intent, ServiceConnection, int) to communicate with a background Service.

一個意圖是一個抽象的描述要執行一個操作。它可以用於startActivity推出一個活動,broadcastIntent BroadcastReceiver組件將其發送給任何感興趣,和由startService(意圖)或bindService(ServiceConnection意圖,int)與後台通信服務。

An Intent provides a facility for performing late runtime binding between the code in different applications. Its most significant use is in the launching of activities, where it can be thought of as the glue between activities. It is basically a passive data structure holding an abstract description of an action to be performed.

一個意圖提供了一個工具來執行代碼在不同應用程序之間的延遲運行時綁定。最重要的用途是活動的推出,可以被認為是活動之間的膠水。它基本上是一個被動持有一個抽象數據結構的描述一個動作。


自己解釋Intent的作用和用法:

Intent 是Android程序中各個組件之間進行交互的重要方式之一,它既可以在當前Activity中指定想要完成的動作,還可以在不同組件間進行數據傳遞。Intent可分為兩種,顯示Intent和隱式Intent。


1.顯示Intent


首先介紹顯示Intent的用法,通過其中一個Intent的構造方法Intent(Context pageContext,Class cls)如下構造方法實例化一個顯示Intent,這個構造函數接收兩個參數,第一個參數Context需要填入一個啟動活動的上下文,一般為當前Activity,第二個參數Class是指定要啟動的目標活動,通過這個構造函數就可以構造出代表我們”意圖”的Intent對象。
修改FirstActivity中按鈕的點擊事件,代碼如下:

\

<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICDU2snPw+bA/dfT1tCjrM7Sw8fK18/IubnU7MHL0ru49kludGVudKOoz9TKvkludGVudKOpLLSryOtGaXJzdEFjdGl2aXR5LnRoaXPX986qyc/Pws7Eo6xTZWNvbmRBY3Rpdml0eS5jbGFzc9f3zqrEv7Hqu+62r6Os1eLR+c7Sw8e+zcP3yLfBy87Sw8e1xNLizbyjrLy01NpGaXJzdEFjdGl2aXR51eK49rvutq/W0M2ouf2147v3bXlidXR0b26wtMWltPK/qlNlY29uZEFjdGl2aXR51eK49rvutq+ho8i7uvPNqLn9QWN0aXZpdHnA4LXEc3RhcnRBY3Rpdml0eaOoo6m3vbeowLTWtNDQuMPS4s28stnX96Gjc3RhcnRBY3Rpdml0eaOoo6m3vbeoysdBY3Rpdml0ecDg1tDM4bmptcSjrNeow8XTw9PaxvS2r7vutq+1xLe9t6ijrMv8vdPK1dK7uPZJbnRlbnS21M/zoaPU2snPwP3W0M7Sw8e9q7m5vai6w7XE0uLNvLbUz/O0q8jruMO3vbeovs2/ydLUxvS2r8S/seq77ravoaM8L3A+CjxwPjxicj4KPC9wPgo8cD48L3A+CjxwPgo8c3Ryb25nPjIu0v7KvUludGVudDwvc3Ryb25nPjwvcD4KPHA+CtPrz9TKvUludGVudM/gscjS/sq9SW50ZW50ysfSu9bWsci9z7qs0O61xEludGVudKGjy/yyu9a4tqjSqsb0tq/ExLj2u+62r6OstvjKx82ouf3F5NbD0rvQqc/gudjQxc+iyOejumFjdGlvbqOsY2F0ZWdvcnm1yNDFz6KjrMi7uvO9u7j4z7XNs8ilt9bO9rKi1dKz9rrPysq1xLvutq/Ipcb0tq+hozwvcD4KPHA+CkFjdGlvbqO608PAtNa4w/fSqsq1yqm1xLav1/fKx8qyw7SjrLHIyOfLtUFDVElPTl9WSUVXLCBBQ1RJT05fRURJVLXIoaO+38zltcS/ydLUsunUxGFuZHJvaWQgU0RLLT4gcmVmZXJlbmNl1tC1xEFuZHJvaWQuY29udGVudC5pbnRlbnTA4KOswO/D5rXEY29uc3RhbnRz1tC2qNLlwcvL+dPQtcRhY3Rpb26hozwvcD4KPHA+CjwvcD4KPHA+CtK70Kmzo9PDtcRBY3Rpb246PC9wPgo8cD4KQUNUSU9OX0NBTEwgIMb0tq/Su7j2tee7sC48YnI+CkFDVElPTl9FRElUIM/Uyr7Tw7unseC8rbXEyv2+3S48YnI+CkFDVElPTl9NQUlOICDX986qVGFza9bQtdrSu7j2QWN0aXZpdHnG9LavPGJyPgpBQ1RJT05fU1lOQyDNrLK9yta7+tPryv2+3bf+zvHG98nPtcTK/b7dLjxicj4KQUNUSU9OX0JBVFRFUllfTE9XILXns9i158G/uf21zb6vuOYuPGJyPgpBQ1RJT05fSEVBRFNFVF9QTFVHILLlsM62+rv6vq+45jxicj4KQUNUSU9OX1NDUkVFTl9PTiDGwcS7seTBwb6vuOYuPGJyPgpBQ1RJT05fVElNRVpPTkVfQ0hBTkdFRCC4xLHkyrHH+L6vuOYuPC9wPgo8cD4KQ2F0ZWdvcnmjutK7uPbX1rf7tK6jrLD8uqzBy7nY09q0psDtuMNpbnRlbnS1xNfpvP61xNbWwOC1xNDFz6Kho9K7uPZpbnRlbnS21M/zv8nS1NPQyM7S4rj2Y2F0ZWdvcnmho2ludGVudMDgtqjS5cHL0O224GNhdGVnb3J5s6PK/S48L3A+CjxwPgphZGRDYXRlZ29yeSgpt723qM6q0ru49mludGVudLbUz/PU9rzT0ru49mNhdGVnb3J5LDxicj4KcmVtb3ZlQ2F0ZWdvcnnJvrP90ru49mNhdGVnb3J5LDxicj4KZ2V0Q2F0ZWdvcmllcygpu/HIoWludGVudMv509C1xGNhdGVnb3J5LjwvcD4KPHA+CtDeuMRGaXJzdEFjdGl2aXR51tC1xLC0xaW147v3ysK8/qOsPC9wPgogIDxpbWcgc3JjPQ=="/uploadfile/Collfiles/20141206/2014120608534296.png" alt="\">

在上面例子中,我們首先初始化了一個Intent對象,並指定action參數。其次調用Intent中的addCategory()方法來添加一個category。每個Intent中只能指定一個action,但卻能指定多個category。

為了能使SecondActivity能繼續響應該Intent,我們可以在AndroidManifest.xml文件下的標簽下配置的內容,來指定當前活動能夠響應的action和category。

\

3.通過Intent向下一個活動傳遞數據

通過Intent對象在啟動活動時傳遞數據很簡單,執行在當前活動中調用PutExtra()方法把要傳遞的數據暫存在Intent中,並在新啟動的Activity中取出Intent中的數據即可。比如我們可以把FristActivity中的一個字符串傳遞到SecondActivity中,就可以如下方式實現:

\

在上面例子中,我們使用顯示Intent的方式來啟動SecondActivity,並通過putExtra()方法傳遞一個字符串到SecondActivity。這裡putExtra()方法
接收兩個參數,第一個是鍵,第二個是值,代表真正要傳遞的數據。
接下來我們在SecondActivity中將Intent對象中的數據取出,並進行其他操作,代碼如下:

\

在上面代碼中首先通過調用getInstent()方法獲取用於啟動SecondActivit的Intent,然後調用Intent對象的getStringExtra()方法,傳入相應的鍵名,就可以得到傳來的數據。

4.通過Instent對象返回數據給上一個活動

在上面內容中我們介紹了如何通過Intent對象將數據傳遞給下一個活動。那麼這裡我們探討一下如何將數據返回給上一個活動。要將數據返回給上一個活動我們可以調用一個startActivityForResult()方法,該方法也是用來啟動活動的,但是這個方法期望在活動銷毀的時候能夠返回一個結果給上一個活動。startActivityForResult()方法接收兩個參數,第一個還是Intent,第二個是請求碼用於判斷回調的來源,請求嗎必須唯一。用法如下:

\

這裡我們使用startActivityForResult(intent,1 );來啟動SecondActivity,接下來在SecondActivity中給按鈕mybutton2注冊點擊事件,並在按鈕
點擊事件中添加返回數據的邏輯,代碼如下:

\

我們首先實例化一個Intent對象,並把要傳遞的數據封裝在該對象中,然後調用setResult()方法。該方法專門用於向上一個活動返回數據,接收兩個參數,第
一個參數用於向上一個活動返回處理結果,第二個參數則是把帶有數據的Intent傳遞回去。
由於我們使用startActivityForResult()方法來啟動SecondActivity的,在SecondActivity被銷毀之後會回調上一個活動的onActivityResult()方法
,因此我們要在FirstActivity中重寫該方法來得到數據,如下:

\

   上例中的onActivityResult()方法有三個參數,第一個requestCode,就是我們在啟動活動時傳入的請求碼,
用來判斷消息來源。第二個參數resultCode就是我們在返回數據時傳入的處理結果,用來判斷處理結果是否成功,
第三個代表攜帶返回數據的Intent。


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