網站首頁 編程語言 正文
從一個Activity
跳到另一個Activity
在編寫安卓代碼是最常見的事情了。我們不可能在一個頁面中,把所有的事情都做完。
在kotlin
中跳轉的程序也比較簡單,跟java
差不多。如果熟悉java
代碼的話,只需要把代碼改變過來而已。
帶參數的調整
從一個Activity
跳到另一個Activity
中,如同調用函數一樣,可以把數據傳遞給另外的Activity
中,Activity
在接受到這個數據后,可以根據數據的情況進行相應的處理操作。
對于跳轉Activity
,android
中使用的是 startActivity
,在startActivity
的時候可以傳遞進去一個Intent
,這個Intent
可以把要傳遞的Activity
和參數都塞進去,使用的方法如下:
val sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") var intent:Intent = Intent(applicationContext,MainActivity2::class.java) intent.putExtra("request_time", sdf.format(Date())) startActivity(intent)
這里我們從MainActivity
,跳到 MainActivity2
中去,我們傳遞的字段為request_time
,在intent
中用putExtra
放入。
在 MainActivity2
中直接用intent
的getStringExtra
來取得相關的字段。
tv_activity.setText(intent.getStringExtra("request_time"))
自定義數據傳輸
大多數,我們不僅僅只是想傳遞一個 基礎類型的數據,對于自定義的類或者數據也是可以做得到的,這點Kotlin
看起來會簡單多了,特別是創建Parcelable
。
創建一個自定義數據類型:
@Parcelize data class MessageInfo(val content:String,val sent_text:String):Parcelable { }
@Parcelize
注解 幫我們把Parcelize
的接口都實現了。
傳遞數據類型,啟動相關的頁面:
btn_activity1.setOnClickListener{ val sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") var message:MessageInfo = MessageInfo("hello MainActivity2",sdf.format(Date())) var intent:Intent = Intent(applicationContext,MainActivity2::class.java) intent.putParcelableArrayListExtra("request", arrayListOf(message)) startActivity(intent) }
使用putParcelableArrayListExtra
把相關的數據放入。接收端同樣的來接收數據類型:
var messages = intent.getParcelableArrayListExtra<MessageInfo>("request")
startActivityForResult
在跳轉后的頁面,如果在跳轉回去的時候,也可以設置相應的回調參數,和回調狀態值。在startActivity
的時候,換為startActivityForResult
,重載onActivityResult
的方法,就可以得到返回的數值。
btn_activity2.setOnClickListener { var intent:Intent = Intent(applicationContext,MainActivity2::class.java) startActivityForResult(intent,9) }
重載onActivityResult
方法,等待返回結果:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) } }
在 MainActivity2
頁面中,用Intent
的方式來跳回原來的頁面。
btn_activity20.setOnClickListener { var intent: Intent = Intent() setResult(0,intent) this.finish() }
小結
Activity
android 四大組件之一,后面其他的組件還會一一的進行介紹,Activity
其實有很多東西可以學習,特別是看看他的源代碼,會發現很多可以用的技巧,但是還是得先學會怎么使用Activity
,這個才是基礎,這里僅僅介紹了跳轉的用法,其他的后面還會進行介紹。
原文鏈接:https://blog.csdn.net/weixin_40425640/article/details/127981019
相關推薦
- 2022-07-08 C#實現收發郵件功能_C#教程
- 2022-06-16 原生實現C#與Lua相互調用方法(Unity3D可用)_C#教程
- 2023-02-01 Flutter?彈性布局基石flex算法flexible示例詳解_Android
- 2021-12-07 C語言實現頁面置換算法(FIFO、LRU)_C 語言
- 2022-09-03 Python?Pandas中DataFrame.drop_duplicates()刪除重復值詳解_p
- 2022-05-12 adb 導出android目錄下的文件
- 2022-11-29 React?props全面詳細解析_React
- 2023-03-02 ijkPlayer播放器的全自動編譯腳本及最終編譯包_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支