Android Studio(意图Intent)
前言
意图的作用:页面的跳转(从一个页面跳转到另一个页面)。
意图的创建:需要哪些参数?首先,从哪个页面跳转到哪个页面;其二,跳转到另一个页面需要携带数据吗。
下面介绍顺序:简单意图、携带数据、
简单意图
所谓简单意图,即只需要进行页面跳转不携带数据 。
Intent intent = new Intent();
intent.setClass(MainActivity.this,SecActivity.class);
startActivity(intent);// setClass(Context,Class)
// Context:跳转前的所在页面上下文
// Class:目标要跳转的页面的class
携带数据
下面就是intent对象传数据的相关方法,可以看到我们可以传入很多类型的数据去满足我们的业务需求。下面也将举几个具体的例子。
intent数据传递
| 方法 | 数据类型 |
|---|---|
| putExtra(String name, boolean value) | 布尔型 |
| putExtra(String name, byte value) | 字节型 |
| putExtra(String name, char value) | 字符型 |
| putExtra(String name, short value) | 短整型 |
| putExtra(String name, int value) | 整型 |
| putExtra(String name, long value) | 长整型 |
| putExtra(String name, float value) | 浮点型 |
| putExtra(String name, double value) | 双精度浮点型 |
| putExtra(String name, String value) | 字符串型 |
| putExtra(String name, CharSequence value) | 字符序列型 |
| putExtra(String name, Serializable value) | 可序列化对象 |
| putExtra(String name, Parcelable value) | Parcelable 对象 |
| putExtra(String name, Bundle value) | Bundle 对象 |
| putStringArrayListExtra(String name, ArrayList<String> value) | 字符串列表 |
intent数据获取
先介绍页面窗口获取意图的方法,毕竟只有拿到意图我们才能使用intent对象的相关方法拿到传递到当前页面窗口的数据。
Intent intent = getIntent();
这个getIntent()方法是所有窗口页面对象都有的(在内部可以直接调用),因为窗口页面对象都extends AppCompatActivity。
如果没有任何页面传递intent(没有页面跳转),那么getIntent()==null;只有当前页面窗口确实是跳转的目的页面,调用getIntent()才会获取到Intent对象。
| 方法 | 数据类型 |
|---|---|
| getBooleanExtra(String name, boolean defaultValue) | 布尔型 |
| getByteExtra(String name, byte defaultValue) | 字节型 |
| getCharExtra(String name, char defaultValue) | 字符型 |
| getShortExtra(String name, short defaultValue) | 短整型 |
| getIntExtra(String name, int defaultValue) | 整型 |
| getLongExtra(String name, long defaultValue) | 长整型 |
| getFloatExtra(String name, float defaultValue) | 浮点型 |
| getDoubleExtra(String name, double defaultValue) | 双精度浮点型 |
| getStringExtra(String name) | 字符串型 |
| getCharSequenceExtra(String name) | 字符序列型 |
| getSerializableExtra(String name) | 可序列化对象 |
| getParcelableExtra(String name) | Parcelable 对象 |
| getBundleExtra(String name) | Bundle 对象 |
| getStringArrayListExtra(String name) | 字符串列表 |
String类型
// 传递String数据(省略意图创建配置)
intent.putExtra("name","joden");// 获取String数据
Intent intent = getIntent(); // 获取窗口意图对象
String getName = intent.getStringExtra("name");
ArrayList<String>类型
// 发送
List<String> cuisineIds = new ArrayList<String>(); // 省略添加数据操作
intent.putStringArrayListExtra("sendCuisineIds", (ArrayList<String>) cuisineIds);// 获取
List<String> cuisineIds = new ArrayList<String>();
cuisineIds = intent.getStringArrayListExtra("sendCuisineIds");
List<Object>类型
// 1. 首先需要引入Serializable接口,使对象可序列化
public class OrderItem implements Serializable// 2. 意图添加Serializable型数据
intent.putExtra("sendOrderItems", (Serializable) orderItems);// 3. 接受页面获取Serializable型数据
List<OrderItem> orderItemList = new ArrayList<>();
orderItemList = (List<OrderItem>) intent.getSerializableExtra("sendOrderItems");
意图回传
什么是意图回传?
界面1发送intent1=>界面2获取intent1=>界面2发送intent2=>界面1获取intent2
这个过程好像是“下发命令”,要保证:命令的接受者正确性、命令下发者确定接受者已经完成命令。
当然,如果我们自己要实现也是可以的,但内部已有相关方法实现,所以我们学习使用即可,逻辑也很简单。
// 1. start to skip page with intent and seek for a Result (MainActivity.java)
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
this.startActivityForResult(intent,666); // 2. pass back intent (SecondActivity.java)
Intent intent = new Intent();
intent.putExtra("username","joden");
setResult(888,intent);
finish();// 3. deal with the intent data is passed back (MainActivity.java)
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if(requestCode==666&&resultCode==888){String getMsg = data.getStringExtra("username");Toast.makeText(this,getMsg,Toast.LENGTH_SHORT).show();}
}
后言
下一节将介绍数据存储的相关知识。
相关文章:
Android Studio(意图Intent)
前言 意图的作用:页面的跳转(从一个页面跳转到另一个页面)。 意图的创建:需要哪些参数?首先,从哪个页面跳转到哪个页面;其二,跳转到另一个页面需要携带数据吗。 下面介绍顺序&#x…...
Bean作用域
从笔者之前的博客,我们可以看出 Spring 是⽤来读取和存储 Bean,因此在 Spring 中 Bean 是最核⼼的操作 资源,所以接下来我们深⼊学习⼀下 Bean 对象:Bean作用域! 限定程序中变量的可用范围叫做作用域!或者…...
YOLOV5----修改损失函数-SE
主要修改yolo.py、yolov5s.yaml及添加SE.py 一、SE.py import numpy as np import torch from torch import nn from torch.nn import initclass SEAttention(nn.Module):def __init__(self, channel=512...
Mybatis(一)
1. Mybatis简介 MyBatis下载地址 1.1 MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github…...
使用Go构建一个Postgres流平台
使用 Go 通道从拉推模型转向更高效的流方法。这通过重叠拉取和推送阶段来提高性能,减少总体处理时间和延迟。 Go通道提供数据同步、资源管理和并发处理。它们允许 goroutine 安全地通信和交换数据。这些源实现了每秒 10-12k 事务的吞吐量,最小延迟为 1-…...
QT基础与细节理解
前言 本博客旨在记录QT学习过程中的一些细节知识理解,由于问题的产生并非成体系,所以前期的记录可能会无序一些。烦请读者参阅目录进行快速的问题定位与跳转 QT基础与细节理解 前言正文部分QT基础1:正确理解: QWidget(parent), ui(new Ui::u…...
【MySQL数据库】 六
本文主要介绍了数据库原理中数据库索引和事务相关概念. 一.索引 在查询表的时候,最基本的方式就是遍历表,一条一条筛选 . 因此,就可以给这个表建立索引,来提高查找的速度 比如,按照id建立索引 在数据库上额外搞一个空间维护一些id 相关的信息, id:1 表的某个位置 id:2 …...
微信总提示空间不足怎么办?三个方法随心选!
微信显示空间不足会给用户带来很多困扰,比如影响手机的正常使用,占用大量存储空间,导致手机运行缓慢,没法分享图片和视频,影响我们的社交交流。下面提供了一些简单实用的方法。 方法一:清理微信缓存 1、打…...
C语言每日一题(27)链表中倒数第k个结点
牛客网 链表中倒数第k个结点 题目描述 描述 输入一个链表,输出该链表中倒数第k个结点。 思路分析 这是一道经典的快慢指针题,fast和slow最开始都指向头结点,对于输入值k,先让快指针fast先走k步,之后再让两个指针一…...
pdf转word
1、pip install pdf2docx 2、 from pdf2docx import Converterpdf_filerH:\测试.pdf docx_filerH:\测试_word.docxcvConverter(pdf_file) cv.convert(docx_file,start0,endNone) cv.close()会根据H目录中的pdf,在本目录自动生成相应的word...
LeetCode热题100——二叉树
二叉树 1. 二叉树中序遍历 1. 二叉树中序遍历...
【Linux】文件重定向以及一切皆文件
文章目录 前言一、重定向二、系统调用dup2三、重定向的使用四、一切皆文件 前言 Linux进程默认情况下会有3个缺省打开的文件描述符,分别是标准输入0, 标准输出1, 标准错误2, 0,1,2对应的物理设备一般是:键盘ÿ…...
Go进阶之rpc和grpc
文章目录 Go环境安装1)windows2)linux go语言编码规范1.1 包名:package1.2 ⽂件名1.3 结构体命名1.4 接⼝命名1.5 变量命名1.6 常量命名2.1 包注释2.2 结构(接⼝)注释2.3 函数(⽅法)注释2.4 代码…...
润和软件HopeStage与奇安信网神终端安全管理系统、可信浏览器完成产品兼容性互认证
近日,江苏润和软件股份有限公司(以下简称“润和软件”)HopeStage 操作系统与奇安信网神信息技术(北京)股份有限公司(以下简称“奇安信”)终端安全管理系统、可信浏览器完成产品兼容性测试。 测试…...
模态对话框和非模态对话框
创建到堆区这样非模态对话框就不会一闪而过 .exec使程序进入阻塞状态 ()[]{}lambda表达式 55号属性可以在对话框关闭的时候将堆区的内存释放掉从而防止内存泄露...
【算法与数据结构】39、LeetCode组合总和
文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:这道题当中数字可以多次使用,那么我们在递归语句当中不能直接找下一个candidate的元素&…...
行政大厅满意度调查内容
行政大厅满意度调查的内容应该涵盖各个方面,以全面了解公众对行政大厅服务的满意度和意见。以下是可能包含在行政大厅满意度调查中的内容: 服务态度: 行政大厅工作人员的友好程度和专业水平。是否受到尊重和礼貌的待遇。 办事效率…...
WordPress页脚配置备案号
进入后台管理页面 后台管理页面地址一般是:域名/wp-admin 在指定位置加入代码 点击外观 -> 主题文件编辑器 在右侧的文件中选择 footer.php,[注意:上方的主题需要是你自己选择的对应的主题]在 </footer>标签这一行的上一行中加入代码 <di…...
时间序列预测模型实战案例(十)(个人创新模型)通过堆叠CNN、GRU、LSTM实现多元预测和单元预测
本文介绍 本篇博客为大家讲解的是通过组堆叠CNN、GRU、LSTM个数,建立多元预测和单元预测的时间序列预测模型,其效果要比单用GRU、LSTM效果好的多,其结合了CNN的特征提取功能、GRU和LSTM用于处理数据中的时间依赖关系的功能。通过将它们组合在…...
【有源码】基于uniapp的农场管理小程序springboot基于微信小程序的农场检测系统(源码 调试 lw 开题报告ppt)
💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
