移动开发 - Android - 实现两个页面(Activity)的简单跳转(Intent)

2023-10-29

我们要实现的页面跳转如下图所示:

第一个页面:



通过点击第一个按钮,实现跳转:


通过点击第二个按钮实现跳转后,点击返回按钮(结束界面)因为之前的界面还没有结束,当第二个界面结束后,露出第一个界面。


使用Intent实现页面的跳转有两种方式。

1.无返回结果的页面跳转:

startActivity(intent);

2.有返回结果的页面跳转:

startActivityForResult(intent, requestCode);

首先,想要实现页面的跳转,至少需要2个页面。即layout文件夹中至少有2个xml文件。(一个xml文件代表一个页面)。

但是在自定义java文件后,要在AndroidManifest.xml文件中声明。

在未创建新的java文件时,AndroidManifest.xml文件中有这样的语句:

<activity
            android:name="com.example.demo3.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

现在我们创建了2个新的页面



我们需要声明,直接赋值粘贴MainActivity的声明语句,改变一下名字即可。

<activity
            android:name="com.example.demo3.MainActivity"
            android:label="@string/app_name" >
            
        </activity>
        
        <activity
            android:name="com.example.demo3.FActivity"
            android:label="@string/app_name" >
            <!-- intent-filter里面的语句是表示当前第一个默认的页面 -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        
        <activity
            android:name="com.example.demo3.SActivity"
            android:label="@string/app_name" >
        </activity>

同样的,我们在创建2个xml页面后,我们需要创建与之对应的java文件。

接下来就是要给按钮添加监听器 ,监听器中的点击事件的反馈就是页面的跳转。

这里直接给出代码,之后给出两个函数参数的具体意思。

//添加监听器
	protected void setActionListener(){
//		通过startActivity()实现页面的跳转
		bt1.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Intent intent = new Intent(FActivity.this, SActivity.class);
				startActivity(intent);
				
			}
		});
//		通过startActivityForresult()
		bt2.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Intent intent = new Intent(FActivity.this, SActivity.class);
				startActivityForResult(intent, 1);

			}
		});
		
	}
	/*
	 *通过
	 *requestCode:请求的标识
	 *restltCode: 第二个页面返回的标识
	 */
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO 自动生成的方法存根
		super.onActivityResult(requestCode, resultCode, data);
		if(requestCode==1&&resultCode==2){
			String str = data.getStringExtra("data");
			tv.setText(str);
		}
	}

实现页面的跳转,我们首先要new 一个Intent对象,

然后调用startActivity()或者startActivityForResult()函数来实现。


				/*
				 * 1.第一个参数是指当前的页面
				 * 2.第二个参数是指要跳转的页面
				 */
				Intent intent = new Intent(packageContext, cls);
第一种:无返回值的startActivity

startActivity(intent);


第二种:返回值的startActivityForResult

				/*
				 * 1.第一个参数是Intent对象
				 * 2.第二个参数是当前页面的标识
				 */
				startActivityForResult(intent, requestCode);

当我们使用有返回值的这种方法时,需要实现其中的方法:

/*
	 *通过
	 *1.requestCode:请求的标识(当前页面)
	 *2.restltCode: 第二个页面返回的标识
	 */
	

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO 自动生成的方法存根
		super.onActivityResult(requestCode, resultCode, data);
		if(requestCode==1&&resultCode==2){
			//获取第二个页面返回的data并且显示在控件tv中
			String str = data.getStringExtra("data");
			tv.setText(str);
		}
	}

这样就通过2中方式,实现了2个页面的跳转。

总结一下:

1.创建2个activity.xml

2.创建与之相对应的java类,并且在AndroidMainfest.xml中声明

3.创建Intent的对象

4.通过startActivity或者startActivityForResult函数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移动开发 - Android - 实现两个页面(Activity)的简单跳转(Intent) 的相关文章

随机推荐

  • 期权策略篇: 实现买方狂欢,让卖方稳赚不赔的策略

    欢迎来到期权策略篇 实现买方狂欢 让卖方稳赚不赔的策略 今天给大家带来的期权策略比较简单 是我们比较常见的四种单腿期权策略 这四种策略分别是买入看涨期权 买入看跌期权 卖出看涨期权 卖出看跌期权策略 本文来自 期权酱 这四种期权策略相对于之
  • 7.27 总结+复盘

    一 初赛错题解析 第一题 题目 解析 像素位 字节位 字节 故选B 第二题 题目 解析 送命题 不会就是不会 做不会只能感叹自己道行甚浅 B选项是代码托管仓库 第三题 题目 解析 选A没啥好说的 记住就好 好奇怎么实现 请自行搜索 拓展一个
  • 2023更新阿里云服务器租用价格表(超详细)

    阿里云服务器分为云服务器ECS和轻量应用服务器 云服务器u1公网带宽可选1M到5M 系统盘为ESSD云盘40GB起 CPU内存配置可选2核2G 2核4G 4核8G 8核16G等配置 云服务器s6公网带宽可选1M到5M 系统盘40G起可选高效
  • 运放单的电源供电和双电源供电

    我们经常看到很多非常经典的运算放大器应用图集 但是他们都建立在双电源的基 础上 很多时候 电路的设计者必须用单电源供电 但是他们不知道该如何将双电源 的电路转换成单电源电路 在设计单电源电路时需要比双电源电路更加小 1 1 电源供电和单电源
  • vue后台管理动态路由-页面刷新之后跳转到默认页面的问题

    路由我们是用公共路由 动态路由 写的过程中发现 在动态路由的页面刷新页面后跳转到了默认页面 也就是我们设置的 path pathMatch redirect dashboard hidden true 本来这行代码我是写到公共路由里面了 就
  • 技术爆炸已至,AIGC(AI-Generated Content)带来内容产业全新格局

    公众号 做棵大树 欢迎关注一起进步 最近 在元宇宙概念大火的同时 人工智能技术也正在迎来新一轮的爆发 Chat GPT AIGC AI Generated Content 人工智能生成内容 正在成为一个新的风口 AIGC 即人工智能生成内容
  • Proteus元件库元件名称及中英对照表

    以下是具体内容 AND 与门 ANTENNA 天线 BATTERY 直流电源 BELL 铃 钟 BVC 同轴电缆接插件 BRIDEG 1 整流桥 二极管 BRIDEG 2 整流桥 集成块 BUFFER 缓冲器 BUZZER 蜂鸣器 CAP
  • 改进YOLO系列:4.添加ACmix注意力机制

    添加ACmix注意力机制 1 ACmix注意力机制论文 ACmix注意力机制原理 ACmix注意力机制的配置 common py配置 yolo py配置 yaml文件配置 1 ACmix注意力机制论文 论文题目 On the Integra
  • 上帝掷骰子吗--量子物理史话

    上帝掷骰子吗 量子物理史话 第一章黄金时代 一 我们的故事要从1887年的德国开始 位于莱茵河边的卡尔斯鲁厄是一座风景秀丽的城市 在它的城中心 矗立着著名的18世纪的宫殿 郁郁葱葱的森林和温暖的气候也使得这座小城成为了欧洲的一个旅游名胜 然
  • C++智能指针简单剖析

    转自 https www cnblogs com lanxuezaipiao p 4132096 html 导读 最近在补看 C Primer Plus 第六版 这的确是本好书 其中关于智能指针的章节解析的非常清晰 一解我以前的多处困惑 C
  • 如何有效地进行代码 Review

    前言 作为公司代码委员会 golang 分会的理事 我 review 了很多代码 看了很多别人的 review 评论 发现不少同学 code review 与写出好代码的水平有待提高 在这里 想分享一下我的一些理念和思路 为什么技术人员包括
  • select下拉框赋值和取值

    jq的select常用的方法 一 下拉框赋值 1 已创建select的下拉框 选中option的value为jquery 例 szfs val jquery 选中option的text为jquery 例 select id option t
  • 五分钟搭建Jetbrains家族IDE授权服务器

    作为Java码农 IntelliJ IDEA可谓是N0 1的开发环境了 对框架的支持 界面 插件都是比较方便的 大大加快了开发的速度以及开发的乐趣 酷炫的界面也能大大的装一个逼 虽然这里教大家搭建授权服务器 但是月入1狗的同志还是支持一下人
  • LVGL学习笔记

    文章目录 前言 一 软件安装 1 VSCode安装 2 MSYS2安装 二 配置环境 1 添加环境变量 2 配置msys2环境 3 配置VSCode 三 运行lvgl示例 前言 最近需要使用LittlevGL 以下简称lvgl 做ARM开发
  • 比较C Sharp和Java

    本文对比C 与Java编程语言 因为这两种语言都具有自动垃圾回收以及运行时编译执行的特点 并且他们的语法都是继承自C语言 C 因此二者有个很多相似之处 但由于C 也被描述为一个C 和Java的混合体 并添加了一些新特性 引入了一些变化 因此
  • 记录el-form+el-dialog表单重置问题

    问题1 使用this refs formName resetFields 方法 表单无法重置 原因 resetField 方法不是将表单重置为空 而是重置为初始值 所以当我们打开新建表单的时候 表单项绑定的属性值为空 在提交表单后 表单项绑
  • 病毒分析教程第三话--静态逆向分析(上)

    静态逆向分析 上 教程参考自 恶意代码分析实战 程序来自 http www nostarch com malware htm 使用上两话静态特征分析和动态行为分析的方法只能从宏观的角度分析样本 但由于无法得到源代码 所以我们无法确凿地判定这
  • marquee 和JS 滚动效果

    一 marquee标签的几个重要属性 1 direction 滚动方向 包括4个值 up down left right 说明 up 从下向上滚动 down 从上向下滚动 left 从右向左滚动 right 从左向右滚动 语法
  • 解决LocalDateTime传值JSON格式化问题

    LocalDateTime是JDK8中提供的新功能 极大的优化了原生日期时间类的使用 但是第一次使用该类可能会在传值过程中出现格式化的小问题 如 JSON无法解析前端所传格式 序列化时LocalDateTime成为数组等 以下提供简单的解决
  • 移动开发 - Android - 实现两个页面(Activity)的简单跳转(Intent)

    我们要实现的页面跳转如下图所示 第一个页面 通过点击第一个按钮 实现跳转 通过点击第二个按钮实现跳转后 点击返回按钮 结束界面 因为之前的界面还没有结束 当第二个界面结束后 露出第一个界面 使用Intent实现页面的跳转有两种方式 1 无返