Android活动之Intent

ops/2024/9/25 10:32:01/

Intent

Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Intent一般可被用于启动活动、启动服务以及发送广播等场景,

显示intent

  • 第一个参数Context要求提供一个启动活动的上下文
  • 第二个参数Class则是指定想要启动的目标活动,

专门用于启动活动

startActivity()方法

配置好第二个活动后,在主活动里配置以下,主要是Intent那两行

        button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {
//                Toast.makeText(MainActivity.this, "you clicked 1", Toast.LENGTH_SHORT).show();Intent intent = new Intent(MainActivity.this, second_activity.class);startActivity(intent);}});

隐式Intent

它并不明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent,并帮我们找岀合适的活动去启动。

怎么操作呢?

通过在标签下配置的内容,可以指定当前活动能够响应的action和category,打开AndroidManifest.xml

        <activityandroid:name=".second_activity"android:exported="true"><intent-filter><action android:name="com.example.intent.MainActivity"/><category android:name="android.intent.category.DEFAULT"/></intent-filter></activity>

只有<action>和〈category〉中的内容同时能够匹配上Intent中指定的action和category时,这个活动才能响应该Intent

应用程序打开浏览器
      Intent intent = new Intent(Intent.ACTION_VIEW);intent.setData(Uri.parse("http://www.baidu.com"));startActivity(intent);

setData()接收一个url对象,主要用于指定当前Intent正在操作的数据,而这些数据通常都是以字符串的形式传入到Uri.parse()方法中解析产生的。

标签
  • android:scheme 用于指定数据的协议部分,如上例中的http部分。
  • android :host 用于指定数据的主机名部分,如上例中的www.baidu.com部分
  • android:port 用于指定数据的端口部分,一般紧随在主机名之后
  • android:path 用于指定主机名和端口之后的部分,如一段网址中跟在域名之后的内容
  • android :mimeType 用于指定可以处理的数据类型,允许使用通配符的方式进行指定
传递数据

Intent中提供了一系列putExtraO方法的重载,可 以把我们想要传递的数据暂存在Intent中,启动了另一个活动后,只需要把这些数据再从Intent中取岀就可以了。

以上所有代码合集:

        button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {/*** 响应Toast*/
//                Toast.makeText(MainActivity.this, "you clicked 1", Toast.LENGTH_SHORT).show();/*** 显式Intent*/
//                Intent intent = new Intent(MainActivity.this, second_activity.class);
//                startActivity(intent);/*** 隐式intent*/
//                Intent intent = new Intent("com.example.intent.MainActivity");
//                intent.addCategory("com.example.intent.MY_CATEGORY");
//                startActivity(intent);/*** 打开浏览器*/
//                Intent intent = new Intent(Intent.ACTION_VIEW);
//                intent.setData(Uri.parse("http://www.baidu.com"));
//                startActivity(intent);/*** 调动拨号*/
//                Intent intent = new Intent(Intent.ACTION_DIAL);
//                intent.setData(Uri.parse("tel: 10086"));
//                startActivity(intent);/*** 传递数据*/
//                String data =  "hello SecondActivity";
//                Intent intent = new Intent(MainActivity.this, second_activity.class);
//                intent.putExtra("extra_data", data);
//                startActivity(intent);}});

传递数据时另外一个活动代码:

        /*** 接受数据代码*/Intent intent = getIntent();String data = intent.getStringExtra("extra_data");Log.d("SecondActivity", data);

http://www.ppmy.cn/ops/8713.html

相关文章

RestClient操作Elasticsearch(Java)

Es官方提供了各种不用语言的客户端&#xff0c;用来操作Es&#xff0c;这些客户端的本质就是组装DSL语句&#xff0c;通过http请求发送给Es&#xff0c;从而简化操作 es基础篇不熟悉参考一下博客&#xff1a;ElasticSearch入门篇-CSDN博客文章浏览阅读445次&#xff0c;点赞7次…

宝塔面板使用docker+nginx+gunicorn部署Django项目实战教程

第一步&#xff1a;创建Django项目 使用pip install django安装创建django项目的依赖在电脑某个根目录下执行django-admin startproject app创建一个名为app的Django项目。目录结构如下: ├── app │ ├── init.py │ ├── asgi.py │ ├── settings.py │ ├── url…

从零开始写一个RTSP服务器(三)RTP传输H.264

目录 一、RTP封装1.1 RTP数据结构1.2 源码 二、H.264的RTP打包2.1 H.264格式2.2 H.264的RTP打包方式2.3 H.264 RTP包的时间戳计算2.4 源码 三、H.264 RTP打包的sdp描述四、测试 本篇文章目标&#xff0c;使用vlc打开sdp文件后&#xff0c;可以观看到视频数据 一、RTP封装 1.1 …

ai智能电话机器人是如何自主学习的

电话机器人的出现&#xff0c;帮助很多传统电销行业企业进入新的发展阶段。它主要通过语音识别和针对语意的理解识别客户所说的内容&#xff0c;针对性的回答问题&#xff0c;为企业高效筛选意向客户。除了电话机器人语音识别之外&#xff0c;电话机器人能够自主学习&#xff0…

python创建sqlite,并使用flask-sqlalchemy连接

python创建sqlite&#xff0c;并使用flask-sqlalchemy连接 在 PyCharm 中&#xff0c;你可以使用 SQLite 数据库来存储数据。以下是在 PyCharm 中使用 SQLite 数据库并通过 Flask-SQLAlchemy 连接它的步骤&#xff1a; 1. 在 PyCharm 中创建 SQLite 数据库 打开 PyCharm&…

微服务:Eureka原理实践:@EnableEurekaServer、@LoadBalanced

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 微服务&#xff1a;Eureka原理实践&#xff1a…

技术速递|为 .NET iOS 和 .NET MAUI 应用程序添加 Apple 隐私清单支持

作者&#xff1a;Gerald Versluis 排版&#xff1a;Alan Wang Apple 正在推出一项隐私政策&#xff0c;将隐私清单文件包含在针对 App Store 上的 iOS、iPadOS 和 tvOS 平台的新应用程序和更新应用程序中。请注意&#xff0c;至少目前 macOS 应用程序被排除在外。 隐私清单文件…

《ElementUI 基础知识》png 图片扩展 icon用法

前言 UI 设计给的切图是 .png 格式。但想与 Element UI icon 用法类似&#xff0c;方案如下。 实现 步骤一 准备图片 步骤二 新建文件&#xff0c;可使用 CSS 预处理语言 styl 或 scss。 stylus 方式 文件 icon.styl /* 定义一个混合 */ cfgIcon(w, h) {display: inlin…