Activity(活动)之Intent(意图)(显式与隐式)的使用

筑牢上线前安全防线:安全运维服务中的检测实践与深化 在日益严峻的网络安全形势下,将漏洞扫描、渗透测试和基线核查有机结合的上线前安全检测,是保障信息系统安全、稳定、合规上线的基石。通过专业、严谨、协作的检测实践,乙方安全团队能够有效协助甲方在系统生命周期的起点就构筑起坚固的安全防线,为业务的顺利开展和用户的信任保驾护航,真正实现“安全赋能业务”的价值。这道“守门人”的职责,是数字时代企业稳健前行的不可或缺的保障。专业的安全服务提供商(乙方)需要与甲方(系统所有者/运营方)建立紧密、透明、协作的伙伴关系,实现风险的闭环管理,甚至推动甲方安全能力的长期提升。 阅读详情

Intent(意图)是Android中各个组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Intent一般可以用于启动活动、启动服务以及发送广播,发送通知等场景,Intent大致可以分为两种:显式Intent和隐式Intent,下面我们先看一下显式Intent如何使用。

Intent有多个构造函数的重载,其中一个是Intent(Context packageContext,Class<?> cls)。这个构造函数接受两个参数,第一个参数Context要求提供一个启动活动的上下文,第二个参数Class则是指定想要启动的目标活动,通过这个构造函数就可以构建出Intent的“意图”。然后我们应该怎么使用这个Intent呢?Activity类中提供了一个startActivity()方法,这个方法是专门用于启动活动的,他接受一个Intent参数,这里我们将构建好的Intent传入startActivity()方法中就可以启动目标活动了。

具体实现:

首先在res/layout/ activity_main.xml文件中添加两个Button控件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/btn1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="显示Intent"
        android:textAllCaps="false" />

    <Button
        android:id="@+id/btn2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="隐式Intent"
        android:textAllCaps="false" />
</LinearLayout>

其次再MainActivity.java中声名控件,初始化控件,为控件设置点击监听事件,通过switch  case语句来判断点击的是哪个button按钮,具体是通过判断布局文件中设置好的Button id来监听的。

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button btn1, btn2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        btn1 = (Button) findViewById(R.id.btn1);
        btn2 = (Button) findViewById(R.id.btn2);
        btn1.setOnClickListener(this);
        btn2.setOnClickListener(this);
    }

 @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn1:
                //这里用来写点击btn1按钮之后需要进行的具体操作
                break;
            case R.id.btn2:
                //这里用来写点击btn2按钮之后需要进行的具体操作
                break;
            default:
                break;
        }


    }
}

这里为了实现Activity之间的切换,我们需要再创建一个SecondActivity.java,并为其绑定一个activity_second.xml文件,这里我们就使用AS自动一键创建Activity的功能。具体步骤请看下图

Finish.之后等待一会,你的第二个Activity就创建好了。

接下来打开activity_second.xml文件,修改一下代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="This is the SecondActivity."
        android:textSize="20sp" />
</LinearLayout>

 

显式Intent:

这个时候我们只需要在MainActivity.java中,btn1的点击监听事件中加2行代码就可以实现Activity之间的跳转了,代码如下。

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn1:
                //这里用来写点击btn1按钮之后需要进行的具体操作
                Intent intent=new Intent(MainActivity.this,SecondActivity.class);
                startActivity(intent);
                break;
            case R.id.btn2:
                //这里用来写点击btn2按钮之后需要进行的具体操作
                break;
            default:
                break;
        }
    }

这个时候我们就可以运行一个我们的程序了,看一看是什么效果,点击显示Intent按钮,会跳转到SecondActivity,注意此时点击隐式Intent是没反应的,因为我们并没有写,隐式Intent点击监听后的处理。

以上就是显式Intent的具体用法,代码其实就1行。

调用startActivity()方法,参数传入Intent实例就行了。

startActivity(new Intent(MainActivity.this,SecondActivity.class));

 

 

隐式Intent:

相比于显示Intent,隐式Intent则含蓄了许多,他并不明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent,并帮我们找出合适的活动去启动。那么什么叫做合适的活动去启动呢?简单来说就是可以响应我们这个隐式Intent的活动,那么目前SecondActivity可以响应什么样的隐式Intent呢?额,现在好像还什么都响应不了,不过很快就会有了。通过在<activity>标签下配置<intent-filter>的内容,可以指定当前活动能够响应的action和category,打开AndroidManifest.xml,添加如下代码:

<activity android:name=".SecondActivity">
            <intent-filter>
                <action android:name="com.example.activitytest.ACTION_START"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
</activity>

在<action>标签中我们指明了当前活动可以响应com.example.activitytest.ACTION_START这个action,而<category>标签则包含了一些附加信息,更精确地指明了当前的活动能够响应的Intent中还可能带有的category。只有<action>和<category>中的内容能够匹配上Intent中指定的action和category时,这个活动才能响应该Intent。

在MainActivity.java中,btn2的点击监听事件中加2行代码就可以实现Activity之间的隐式Intent跳转了,代码如下。

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn1:
                //这里用来写点击btn1按钮之后需要进行的具体操作
                Intent intent=new Intent(MainActivity.this,SecondActivity.class);
                startActivity(intent);
                break;
            case R.id.btn2:
                //这里用来写点击btn2按钮之后需要进行的具体操作
                Intent intent1=new Intent("com.example.activitytest.ACTION_START");
                startActivity(intent1);
                break;
            default:
                break;
        }
    }
 Intent intent1=new Intent("com.example.activitytest.ACTION_START");
 startActivity(intent1);

可以看到我们使用了Intent的另一个构造函数,直接将action的字符串传了进去,表明我们想要启动能够响应com.example.activitytest.ACTION_START这个action的活动。那前面不是说要<action>和<category>同时匹配上才能响应的吗?怎么没看到哪里有指定category呢?因为android.intent.category.DEFAULT是一种默认的category,在调用startActivity()方法的时候会自动将这个category添加到Intent中。

重新运行一下程序,点击隐式Intent的按钮,我们发现界面跳转到了SecondActivity界面,效果如下:

不过此次我们使用的是默认的category,如果我们希望使用自定义的category,可以使用Intent类中的addCategory方法

来主动添加category,与此同时Manifest中也要添加一行<category>标签,

代码如下

Intent intent1=new Intent("com.example.activitytest.ACTION_START");
intent1.addCategory("com.example.activitytest.MY_CATEGORY");
startActivity(intent1);
 <intent-filter>
         <action android:name="com.example.activitytest.ACTION_START"/>
         <category android:name="android.intent.category.DEFAULT"/>
         <category android:name="com.example.activitytest.MY_CATEGORY"/>
 </intent-filter>

再运行一次程序,同样点击隐式Intent,效果一样。

显式Intent与隐式Intent的基本使用方法就是这么的简单,是不是很easy呢,后面我还会总结一下Intent的其它使用方式。

 

AutoSAR_BSW高阶 7. Signal Group 信号组 Autosar BSW的高级配置是实现复杂汽车电子系统的关键步骤之一。通过合理配置信号组和使用适当的参数,您可以提高系统性能,确保数据的可靠传输。在本博客中,我们深入探讨了信号组的概念和高级配置参数,并提供了示例代码,希望这些信息能够帮助您更好地理解和应用Autosar BSW的高级配置。如果您在配置过程中遇到任何问题,不妨寻求专业支持,以确保您的汽车电子系统能够顺利运行。Autosar COM 模块是一个广泛应用于汽车行业的关键技术,它使不同的电子控制单元能够有效地通信和协作。 阅读详情

相关推荐

SAP(ERP)工艺路线(Routing)业务视角解析

工艺路线(Routing)也是PP模块,即生产制造模块中最重要核心主数据之一,也是ERP(SAP)顾问,必需从业务与系统深入掌握的重要主数据,它也是整个生产计划与生产流程的重要基础。因为执行步骤只是操作层面的认知,业务顾问需要从业务本质上去理解它,要真正从业务视角理解工艺路线的业务价值,而不仅仅是操作层面的认知。因此将工艺路线理解为“有以上业务本质的理解,然后进到SAP系统中,就容易理解工艺路线(Routing)的每一组成部分结构与功能了,本质就是理解制造企业如何将设计意图转化为物理现实的编码规则。

m0_45197968的博客 1498

Android中Activity使用singleTask模式时获取intent参数

通过intent打开一个singleTask模式的Activity时,如果此Activity之前被创建过,则直接打开之前生成的实例,不会重新创建,所以也不会执行onCreated方法。那么,如何获取intent中传递过来的参数呢?

tcxx726的博客 471

MATLAB语言的并发编程

并发编程是指在同一程序中同时执行多个计算任务。通过将任务分解为较小的子任务,程序可以利用多核处理器的优势,提高计算效率。并发编程与并行编程密切相关,但不完全相同。并行编程强调任务的同时执行,而并发编程则侧重于任务的调度与管理,即使某些任务并没有同时执行。MATLAB的并发编程为数据分析、科学计算等应用提供了强大的支持。通过使用parforparfevalspmd等工具,用户可以轻松实现高效的并行计算。尽管MATLAB的并发编程工具相对简单易用,但在实际应用中仍需关注数据共享、通信、错误处理等问题。

2501_90485575的博客 363

Intent的四种跳转( 1 显式跳转 ,2 隐式跳转 , 3 数据传递 , 4 数据回传)

1 显式跳转 ,2 隐式跳转 , 3 数据传递 , 4 数据回传 关键代码片段: 显式跳转: Intent intent1=new Intent(MainActivity.this,Main2Activity.class); startActivity(intent1); 隐式跳转: <intent-filter> <action android:name="sigh" /&...

帅boy的博客 2665

MOLDFLOW 2012模流分析基础到实战视频教程

├ 1第一讲MF软件安装与界面定制及模流前期准备工作及分析流程介绍 ├ 2第二讲MF建模工具条命令讲解与图层的运用 ├ 3第三讲MF网格类型与适应范围及网格划分、诊断、修复与统计 ├ 4第四讲MF中CAD doctor 模块对导入模型的修复方法与实例 ├ 5第五讲MF中常见各种流道浇口及水路的建模方法与外部导入方法上 ├ 6第六讲MF产品模型导入CAD DOCTOR与修复 ├ 7第七讲MF分析序列设定与网格的划分与诊断及修复 ├ 8第八讲MF材料选择与成型工艺参数设定 ├ 9第九讲MF创建浇注系统:主流道、

QQ_1987083845的博客 2543

LangChain与SkillLite集成:AI Agent安全沙箱实践

在AI与自动化技术领域,安全沙箱是实现可信计算的核心机制。其原理是通过资源隔离与权限控制,构建受限的执行环境。技术价值在于平衡功能开放性与系统安全性,尤其适用于处理用户提交的非受信代码或敏感数据。典型应用场景包括AI插件系统、在线代码评测平台等。本文以LangChain框架与SkillLite沙箱的深度集成为例,详解如何通过命名空间隔离、cgroups限制等机制,为AI Agent赋予安全执行动态技能的能力。其中涉及的关键技术点包括Python运行时隔离、动态资源配额管理,以及如何防范Shell注入等常见攻

weixin_34189116的博客 405

Android中使用intent跳转Activity和传递数值

显示Intent与隐式intent的使用,以及利用intent传递数值

It_is_IT_的博客 2050

电路设计仿真软件:Mentor Graphics_(11).MentorGraphics软件操作与技巧

/ 定义自定义仿真命令// 加载设计文件// 运行仿真// 主函数return 1;return 0;// 自定义设计检查// 获取设计中的所有模块// 遍历所有模块// 检查模块名称是否符合规范if (!// 检查模块中的所有引脚if (!// 主函数main() {通过本节的学习,您应该已经掌握了如何在 Mentor Graphics 中进行二次开发,包括使用 Tcl、C++ 和 Python 进行基本和高级操作。

kkchenjj的博客 1636

Android用意图(intent)实现界面的跳转(kotlin版本)

安卓

weixin_56665183的博客 1747

infercnv的实操

摘要: 博主在infercnv分析中遇到执行困难,外包服务不可靠(未按要求使用HMM方法)。通过优化策略(逐样本处理、精简细胞至1000个、固定随机种子)解决了运行问题,但HMM功能仍无法实现。最终参考Cell期刊标准设置阈值完成分析,后续将继续更新进展。该案例凸显了生物信息分析中自主优化的重要性。(150字)

xiaoyusang的博客 306

从矩阵理论角度理解偏最小二乘回归,以及在脑科学中(脑影像与行为、基因表达的关系)的应用举例

偏最小二乘法 (PLS) 是一种多元数据驱动的统计技术,旨在提取表示最大大脑行为关联的潜在变量(或潜在成分 latent components [LC])。

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 975

安卓Activity之间的数据传递四种方法,以及数据回传的实现

显式Intent来跳转页面和传递数据: Intent intent=new Intent(MainActivity.this,ReceiverActivity.class); intent.putExtra("显式数据","显示意图Intent传送数据"); startActivity(intent); 接受数据时: TextView txtshow=(TextView)findViewById(R.id.txtShow); Intent intent =getIntent();

qq_43540629的博客 4820

通用抓取算法AnyGrasp(Graspnet)——本地部署并测试自定义输入数据

背景:GraspNet在数据采集方面,首先将相机固定到机械臂末端,对同一个场景拍摄256个不同的角度,同时场景中的每个物体都会提前采集好3D模型,之后将其投射到仿真环境中,在仿真环境中,对抓取位姿进行打标签,如此完成数据的采集。在运行官方的测试示例时,使用的是路径下的输入数据,可以分析下。color.png(输入):rgb图像(输出):输出的生成抓取位姿的图像depth.png(输入):和当前rgb图像对应的深度图像(保存格式是单通道uint16)meta.mat。

boss-dog 1324

intent 显式意图和隐式意图之Activity的激活方式

对于intent主要的分类主要包括隐式意图和显式意图。显式意图通常主要是启动本应用中的Activity之间的数据,而隐式意图则常见于启动系统中的某些特定的动作,比如打电话,或者是跨应用的Activity启动。所以激活本应用的Activity用显式意图,如果MainActivity与你要激活的Activity不在同一个包下,在同一个工程下,在采用显式意图激活时,一定要写明当前Activity所在的包

水月灯花的博客 1214

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

详解显式intent和隐式intent

Intent是Android程序中各组件之间进行交互的一种重要方式。它不仅可以指明activity想要执行的动作,也可以在不同组件之间传输数据。 Intent分为两种,显式intent和隐式intent,以下分别进行描述: 一、显式intent bt.setOnClickListener(new View.OnClickListener() { @Overrid...

aries9986的博客 6739

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Android Intent显式与隐式跳转详细讲解

Android Intent是一种重要的消息传递机制,可用于在应用程序之间进行通信。Intent 可以分为显式 Intent 和隐式 Intent。显式 Intent 明确指定要启动的 Activity,而隐式 Intent 只指定 Action、Category、Data 等元素,由系统匹配合适的 Activity。Intent 可以传递数据,使用 putExtra() 方法添加键值对即可。数据类型可以是基本类型、字符串、Parcelable 对象等。Intent 还可以启动服务和发送广播。

qq_64125090的博客 3914

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

android的显式隐式intent

android的显式隐式intent

susu1083018911的博客 1455

Android显式意图和隐式意图

intent基本理解 我们都知道Android四大组件:Activity 、Service、broadcast receiver 及 内容提供者。 其中,Activity 、Service、broadcast receiver 三大组件之间的通信 intent 起着至关重要的作用,即媒介。 intent 可以激活 Android 应用的三个核心组件:活动(Activity)、服务(Service)和广播接收器(BroadcastReceiver) 显式意图 和 隐式意图 显示意图:在创建 inte.

我想月薪过万的博客 3020

【Android】活动Activity、意图Intent(显示意图、隐示意图)和活动传参

活动(Activity)是一种可以包含用户界面的组件。主要用于用户交互。一个应用可以包含一个或零个活动。

冰冷的希望的博客 1184

Android 开发 - 活动 Activity(启停活动页面、Activity 生命周期、Activity 启动模式、Intent、显式 Intent\隐式 Intent)

Android 开发 - 活动 Activity(启停活动页面、Activity 生命周期、Activity 启动模式、Intent、显式 Intent\隐式 Intent)

weixin_52173250的博客 847

Android中intent的作用,显式意图和隐式意图

Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件。使用Intent可以激活Android应用的三个核心组件:活动、服务和广播接收器。 Intent可以划分成显式意图和隐式意图。 显式意图:调用Intent.setComponent

二一点 2638

intent显式和隐式传递数据

实践内容: 构建一个拥有多Activity,用于计算输入2个运算数的加减法结果的Android App 效果图如下: MainActivity页面 点击加法按钮跳转到AddActivity页面 若点击计算按钮,计算结果成功返回到主页面 若点击取消按钮,跳转到主页面显示未计算;减法按钮同理 实践步骤: 1.在成功创建Empty Activity项目之后,我们会得到MainActivity及对...

qq_41626229的博客 2000

【Android学习】- 显式和隐式Intent

Intent 分为两种:显式和隐式 一、显示Intent (意图明显,通过直接调用Activity类,来实现不同类之间的交互) 1、构造方法春如Component Intent intent = new Intent(this, SecondActivity.class); startActivity(intent); 2、setComponent方法 ComponentName componentName = new ComponentName(MainActivity.this, Seco

huoguangyao的博客 1432

Android——显式/隐式Intent

在Android中,Intent是各个组件之间信息通信的桥梁,它用于Android各组件的通信。Intent 的组成部分。

大风起兮云飞扬 944

android隐式和显式广播,Android Intent详细介绍及使用说明(显式、隐式和值传递)...

Intent 是Android程序中各个组件之间进行交互的一种重要方式,不仅可以指明当前组件想要执行的动作,还可以在不同组件中传递数据。我们一般可以用Intent启动活动(Activity)、启动服务(service)、以及发送广播(broadcastreceiver)等。Intent用法大致分为两种,一种是显式Intent,一种是隐式Intent。一、显式IntentIntent有多个构造函数的...

weixin_42122432的博客 1956

显式意图和隐式意图总结

package com.example.wang.myapplication; import android.content.ComponentName; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v7...

diaozhanang6473的博客 470
上一篇: 初识Android四大组件之一Activity(活动)
下一篇: 使用隐式Intent打开系统浏览器的百度网页
Android_牧
博客等级 码龄9年 88粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值