android Activity之間的資料交換

2021-07-11 18:00:28 字數 1493 閱讀 2181

activtiy之間的資料交換分為倆種:第一種為從開始activity跳轉到目標activity,將資料帶到目標activity。第二種為帶返回值的activity跳轉,必須關閉目標activity。

說一下常用的intent攜帶資料的函式

第一種資料交換方式:

常用方法:

putextras(bundle data):向intent中放要攜帶的資料報

bundle getextras():取出攜帶的資料報

putextra(string name,*** value):向intent中按key-value對的形式存入資料

get***extra(string name):取出指定型別的資料

put***(string key,*** data):向·bundle放簡單的資料型別。如int,long,string等等

putserializable(string key,serializable data):向bundle中放入乙個可序列化的物件,可以自定義乙個class,如public class eventtask implements serializable

在後面實現序列化,eclipse會自動新增形如private static final long serialversionuid = 1l,然後就可以使用了。該方法主要可以自定義乙個資料格式,來傳輸資料。

取出資料:

get***(string key):從中取出指定型別的資料

getserializable(string key):取出可序列化資料,然後轉型即可恢復自定義格式的資料內容

其中putextra依舊存放在bundle中,只不過變成了快捷方式

開啟方式:startactivity(intent intent)

第二種資料交換方式:跳轉到目標activity,攜帶目標的資料,關閉目標activity再返回並攜帶資料。

要重寫的方法:

開啟的方法:startactivity(intent intent,int requestcode)

這個方法的requestcode代表有start的介面哪個子控制項開啟的

start的activity裡要重寫的方法:

onactivityresult(int requestcode,int resultcode,intent intent)

其中requestcode代表上面的請求碼,resultcode代表跳轉到那個介面的activity,intent代表跳轉到目標activity中返回的資料

目標的activity裡要做的操作:

攜帶資料報有以下倆種方式:

第一種獲取跳轉前的intent,放入資料。getintent(),返回值型別,intent

第二種重新建立intent:new intent()

隨後,攜帶資料報存放格式像前面的一樣。然後使用方法setresult(int resultcode,intent intent)返回資料

最重要的一點要關閉目標activity,否則這種型別不會返回資料。呼叫方法finish()

android activity啟動模式

1.標準模式 standrad 沒啟動乙個activity,都會建立乙個activity例項,放入回退棧的內部 2.單頂模式 singletop 當啟動launchmode是 singletop的時候,系統會先判斷棧頂是不是要啟動的那個activity例項,如果是,則不會建立新的例項,直接讓棧頂直接...

Android Activity啟動模式

在androidmanifest.xml中配置 android name mainactivity android launchmode standard 有以下四種 standard 預設模式,每次通過intent啟動activity時都會建立乙個新的activity例項,並放入任務棧中。sing...

android Activity切換動畫

今天準備比賽的時候 遇到了這個問題。查了些資料總結了下。主要是通過 android theme 標籤來實現 android theme style 那麼就需要自己寫style風格檔案 如下 這裡之所以寫成2style個是為了解耦然後自己寫下anim anim enter anim anim exit...