文章总结: 本篇Android开发教程详细讲解了页面跳转与参数传递的实现方法,介绍了Navigation组件的三大核心部分:NavController、NavHost和navigate。文章通过实例演示了如何创建新页面、设置导航函数、实现页面跳转以及如何在跳转时传递参数。这些技能是构建多页面Android应用的基础,对初学者有很好的指导价值。 综合评分: 75 文章分类: 移动安全
【Android学习笔记】第6课 页面跳转与传递参数
网安小杨
网络安全小杨
2025年12月15日 18:00 浙江
正常情况下,一款Android应用程序会有多个界面,为用户提供不同的功能服务,这些界面之间可以自由的跳转和传递参数。如我们在第5课设计的登录页面,用户在输入账号和密码后,如果是合法用户,程序会跳转到主程序页面;如果用户忘了密码,可以点击“忘记密码”,进入找回密码页面; 如果用户还未注册,可点击“注册账号”,进入注册账号页面。这节课我们就来学习这部分的知识和技能。
一、页面跳转
1、Navigation介绍
Android的页面跳转,也叫“页面导航”,由Navigation组件来实现,该组件有三大核心部分:
- NavController,即“导航控制器”,用于发送跳转指令,管理页面堆栈。
- NavHost,即“导航宿主”,承载所有注册的页面,根据导航控制器的指令动态渲染当前页面。
- navigate,页面跳转,在页面中通过导航控制器触发跳转,用字符串标识页面,支持带参数
2、创建新页面
接下来,我们就在第5课代码的基础上,在CheckUser()函数的后面,创建Findpwd()和Register()两个可组合函数,分别对应“忘记密码”和“注册账号”两个页面,Findpwd()代码如下:
这段代码创建了一个Findpwd组件,Column布局,大小是fillMaxSize,垂直和水平都居中对齐,Column布局里包含一个Text组件,字体30sp。新知识点有二:1、Findpwd函数带有参数,即导航控制器navController。2、Text组件通过Modifier.clickable调用导航控制器的popBackStack()函数,实现点击返回。这两个在页面跳转时非常重要,务必理解。
Register()函数代码与Findpwd相似,不再解释,仅给出代码:
或许有读者朋友提出质疑:一个页面不是对应一个文件吗?这两个组合函数都在MainActivity.kt文件里,怎么能算两个页面呢?
这个问题还要从Android compose说起。Android的一个Activity可以管理若干个page,而Activity中的每个标注@Composable的函数都可以作为一个页面来使用。上面我们创建的两个@Composable函数就两个页面。
3、创建导航函数
创建了两个页面,点击“忘记密码”和“注册账号”时,如何跳转过来呢?不急,我们再创建一个Navigation组件,位置在第5课代码的开屏动画函数前面,代码如下:
简单解释一下:
- 声明一个导航控制器navController。
- 创建导航宿主函数,有两个参数:一是navController,导航控制器。一个是startDestination,跳转的起始位置,我将它命名为“main”,当然命名为其他名也可。
- NavHost函数体包含三个composable函数,对应三个页面,路由名为“main”的函数对应的是Login函数,这个函数是我们上节课创建的; 路由名为“findpwd”的函数对应的是Findpwd函数;路由名为“register”的函数对应的是Register函数。后两个是我们刚才创建的,这三个页面函数都带有navController参数,因为都要实现页面跳转。
4、实现跳转
在编写完导航函数和页面函数后,我们要将它们关联起来,实现页面跳转。
(1)在MainActivity主函数中,在StartImage之后,调用刚才创建的Nav()函数,同时注销此处的Login函数,见红色框内代码:
(2)修改Login()函数:一是为该函数添加参数Login (navController: NavController),二是为Row布局中的两个Text组件绑定Modifier.clickable,当点击时,跳转到指定页面,如下图:
到此,就实现了页面的跳转,在模拟器里跑一下,看看吧。
二、跳转传参
页面跳转,经常伴随着参数的传递,接下来介绍跳转传参。回顾一下第5课的代码,当用户在输入账号和密码,点击“登录”按键时,程序将跳转到主页面,同时将登录信息传递过去。
1、创建新页面
我们先创建一个WeChat的页面,作为登录后的跳转的主页面。可以像刚才那样在MainActivity中创建,也可以单独创建一个Kotlin文件,这次我们采用单独创建文件。
在开发工具的左侧栏里右击“java”目录,选“New”—“KotlinClass/File”,
输入文件名“WeChat”,选“File”,回车,即创建了WeChat.kt文件。
WeChat.kt的代码如下:
该函数有3个参数,其中uid、pwd是用来接收用户的登录信息,并通过Text组件的text=”账号:$uid,密码:$pwd”显示出来。该函数上面有一些库文件需要导入,不然会报错。
2、修改NavHost函数
增加一个composable函数,如下图红框所示:
跟之前的创建的两个composable函数不同,这个函数在跳转时带有{uid}和{pwd}两个参数,并通过arguments指定参数的类型。
3、修改Login函数
把Login函数中的Button点击时执行的CheckUser函数注销,把整个CheckUser函数体粘贴过来,在else部分添加navController.navigate,携带两个参数跳转到WeChat页面。
在模拟器里跟一下吧,最终效果如下图所示:
输入账号和密码,点击 “登录”按钮,跳转到WeChat页面,并将用户的登录信息传递过去。点击WeChat页面上的文字,可以返回到Login页面。WeChat页面将是我们下一步开发重点,敬请继续关注。
查看原文:《【Android学习笔记】第6课 页面跳转与传递参数》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论