初學安卓開發隨筆之 Intent 用法

2022-06-14 19:36:17 字數 2713 閱讀 1081

首先,對於安卓開發,目前世界上流行的是使用的是android studio 2.0 。(hh 學著來唄 書上說用這個,,)

今後就定乙個計畫 每天更新乙個android 隨筆,增強一下自控力吧!!!

(∩_∩)  相信自己可以做到!!!

第一天 intent用法

intent用法大體上有三種

顯示呼叫   構造出intent後 傳入firstactivity.this 作為上下文 傳入secondacctivity.class 作為目標活動  最後用startactivity執行這個intent

隱式呼叫  首先 給出要被動響應的活動 在androidmanifest.xml裡加上 action 和 category(my_category這個是後面可以呼叫函式加上的 暫時可以不加)

然後即可

intent intent = new intent("

com.example.activitytest.action_start");

startactivity(intent);

進行隱式呼叫 其中 intent這種建立方法便是傳入了action的字串,表明我要啟動的活動,category 這裡是default表示為預設的category

每個intent可以指定乙個action 但是可以指定多個category 下面可以通過這句來增加乙個category。 

intent.addcategory("com.example.activitytest.my_category");

注意這裡 對應一定要在要啟動的活動的 intent-filter 加入 category 宣告!!!

其他用法  開啟網頁  這裡首先 要配置裡的data標籤!!!    使得thirdactivity可以響應所有的http協議的intent

例項**如下:

intent intent = new

intent(intent.action_view);

intent.setdata(uri.parse(""));

startactivity(intent);

打**  協議為tel

intent intent = new

intent(intent.action_dial);

intent.setdata(uri.parse("tel:10086"));

startactivity(intent);

傳資料首先 想把活動firstactivity

的資料傳給活動secondactivity

string data = "hello secondactivity";

intent intent = new intent(firstactivity.this, secondactivity.class);

intent.putextra("extra_data", data);

startactivity(intent); 用的是putextra 傳遞資料 extra_data為鍵值 後面的data為實際要傳的資料!!!

然後在secondactivity 先用getintent獲得用於啟動本活動的intent 在呼叫get x extra獲取傳遞的資料 x代表 型別 有string boolean int等等

不僅僅如此 還可以傳遞資料給上乙個活動哦。。。 方法是用 startactivityforresult方法來 做到對乙個活動在銷毀時返回乙個本活動的結果給上乙個活動

intent intent =

new intent(firstactivity.this, secondactivity.class

);startactivityforresult(intent, 1); 這裡用startactivityforresult啟動secondactivity 而不是startactivity。其中1是請求碼 只要是唯一值就可以!!!

這裡在secondactivity裡新增了活動結束後的返回資料邏輯    setresult方法是用來專門向上乙個活動返回資料的,putextra把資料存在了intent裡。 一般第乙個引數有result_ok 和 result_canceled 第二個引數是帶有資料的intent 。  finish 銷毀活動。

由於返回了firstactivity活動 故在這裡重寫這個方法來接受返回的資料。

requestcode是請求碼 resultcode是setresult時設定的處理結果 data就是傳入的帶資料的intent
!!!這裡是通過點選按鈕結束的活動從而進行傳遞資料  如果是按下back鍵回到firstactivity的 我們可以重寫 onbackpressed()方法來解決這個問題啦

安卓開發 intent和intent filter

intent android中提供了intent機制來協助應用間的互動與通訊,intent負責對應用中一次操作的動作 動作涉及資料 附加資料進行描述,android則根據此intent的描述,負責找到對應的元件,將 intent傳遞給呼叫的元件,並完成元件的呼叫。intent不僅可用於應用程式之間,...

安卓頁面跳轉 Intent

package com.example.genius.activity 02 import android.content.intent import android.os.bundle import android.view.view import android.widget.button pu...

安卓Intent 隱式

相對於顯式intent 明確指出了目標元件名稱的intent 隱式intent,沒有明確指出目標元件名稱。顯式intent直接用元件的名稱定義目標元件,這種方式很直接。但是由於開發人員往往並不清楚別的應用程式的元件名稱,因此,顯式intent更多用於在應用程式內部傳遞訊息。比如在某應用程式內,乙個a...