在Android studio中Intent的几种基本使用方法

 在Android开发中,Intent是最基本也是最常用的操作,在Activity,Service,BroadcastReceiver这些核心组件中也需要Intent进行操作,下面我们具体介绍Intent在开发中的一些基本用法

假定目前有FirstActivitySecondActivity两个活动,其中FirstActivity为初始活动启动活动

SecondActivity为被启动活动

显示Intent (直接指定目标组件,属于精确匹配)

(1)在构造方法中实现

//创建一个目标意图,this为当前活动FirstActivity
Intent intent=new Intent(this,SecondActivity.class);

//调用startActivity方法启动SecondActivity
startActivity(intent);

(2)调用setClass方法

//创建一个意图
Intent intent=new Intent();

//调用setClass方法设置要跳转的意图
intend.setClass(this,SecondActivity.class);

//调用startActivity方法启动SecondActivity
startActivity(intent);

(3)调用setComponent方法

//创建一个意图
Intent intent=new Intent();

//创建一个包含目标活动的ComponentName组件
ComponentName component = new ComponentName(this, SecondActivity.class);

//调用setComponent方法将封装信息传给意图对象intent
intent.setComponent(component);

//调用startActivity方法启动SecondActivity
startActivity(intent);

隐式Intent(不会直接指定需要激活的目标组件,属于模糊匹配)

 与显示Intent不同的是,隐式Intent不需要指定具体的活动名称,通过动作进行匹配(action)

在清单文件(AndroidManifest.xml)中找到.SecondActivity的代码段

设置action属性如下

设置category属性如下

注:action属性和category属性可以有多条,匹配上任意一条即可

<activity android:name=".SecondActivity">
    <intent-filter> 
            <!--设置action属性-->
        <action android:name="android.intent.action.Second" /> 
            <!--设置category属性-->
        <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity>

设置完动作属性后,便可以用代码中setAction方法来传递设置相应的活动动作了,代码如下

//创建一个意图对象
Intent intent=new Intent();
//设置action动作
intent.setAction("android.intent.action.Second");
//调用startActivity方法启动SecondActivity
startActivity(intent);

其实,在Android开发中也提供了一些常用的隐式调用系统应用的action

实例化一个Intent对象

Intent intent=new Intent();

发送短信

intent.setAction(Intent.ACTION_SENDTO);
//或者
intent.setAction("android.intent.action.SENDTO");

准备拨号  

intent.setAction(Intent.ACITON_DIAL);
//或者
intent.setAction("android.intent.action.DIAL");

 发送内容

intent.setAction(Intent.ACTION_SEND);
//或者
intent.setAction("android.intent.action.SEND");

以上就是一些Android开发中的一些基本用法了(记录一下学习过程)

觉得有用的话点个赞再走呗~

Android Studio,你可以使用`Intent`对象来传递不同类型的数据。`Intent`是用于在应用程序之间传递信息的重要工具。如果你想同时传递两个不同类型的参数,可以采用以下几种方式: 1. 使用基本数据类型:如果是简单的数据类型如字符串(String)、整数(Integer)、布尔值(Boolean),可以直接将它们作为`putExtra()`方法的键值对添加到`Intent`。 ```java Intent intent = new Intent(); intent.putExtra("param1", "string value"); intent.putExtra("param2", 42); ``` 2. 使用Serializable或Parcelable接口:如果你的数据结构需要序列化,比如自定义的对象,你需要让这个类实现Serializable或Parcelable接口,并通过这两个接口提供的`writeToParcel()`和`readFromParcel()`方法来转换。 ```java public class CustomData implements Serializable { // ... 自定义类的内容 public static final String EXTRA_KEY_CUSTOM_DATA = "custom_data"; @Override public void writeToParcel(Parcel dest, int flags) { // ... 写入数据的方法 } @Override public void readFromParcel(Parcel source) { // ... 读取数据的方法 } } // 发送Intent intent.putExtra(CustomData.EXTRA_KEY_CUSTOM_DATA, yourCustomDataObject); ``` 3. 使用Bundle:`Bundle`是一个键值对集合,可以存储任意类型的数据,包括列表、字典等。 ```java Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putString("param1", "string value"); bundle.putInt("param2", 42); intent.putExtras(bundle); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值