Android Studio中如何在Activity跳转之间传递数据

使用Intent操作可以完成两个Activity之间的跳转,有时候也相应的需要在两个跳转活动之间传递数据,这篇就详细的介绍一些在Android开发中一些基础的活动跳转时传递数据的方法

调用PutExtra()方法

由于Activity之间的数据传递有许多不同种类型,所以在Inten类中提供了多个重载的putExtra()方法

具体用法如下:

通过putExtra()方法将传递的数据存储在Intent中

//创建一个意图并构造跳转对象
Intent intent=new Intent(this,SecondActivity.class);
//调用putExtra()方法
intent.putExtra("name","李华");//姓名
intent.putExtra("age",18);//性别
//启动SecondActivity活动
startActivity(intent);

 通过getXxxExtra()方法将传递的数据获取

//获取意图对象
Intent intent=getIntent();
//获取姓名
String name=intent.getStringExtra("name");
//获取年龄
String name=intent.getIntExtra("age",0);

这样就完成了第一种Activity之间数据传递的方法~ 

这里解释一下第三行代码(大佬跳过~):

//获取年龄
String name=intent.getIntExtra("age",0);

第二个参数设置为0,为什么呢?这里可以看一下getIntExtra()方法的参数定义

getIntExtra(String name,int defaultValue){
        //
}

第一个参数是键值,第二个参数代表默认取值,说明只有当putExtra()中没有传入age的值时,age才会赋予的值。

利用Bundle类传递数据

与map接口类似,都是通过键值对的方式来保存数据

示例如下:

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

//设置要跳转的Activity
intent.setClass(this,SecondActivity.class);

//创建一个Bundle对象
Bundle bundle=new Bundle();

//调用Bundle类中的putString()方法封装信息
bundle.putString("name","李华");//将姓名信息封装到Bundle中
bundle.putString("age","18");//将年龄信息封装到Bundle中

//将Bundle对象封装到Intent对象中
intent.putExtras(bundle);

//启动Avtivity活动
startActivity(intent);

在SecondActivity中获取数据代码如下

//获取Bundle对象
Bundle bundle=getIntent().getExtras();

//获取数据
String name=bundle.getString("name");
String age=bundle.getString("age");//注意此时age的类型不是int型,需要自行转换

这样就也完成了第二种在两个Activity跳转之间的数据传递的方法~

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

Android Studio,活动之间跳转通常通过Intent机制来完成,这是一种常见的应用程序间通信方式。以下是几种常见的实现活动跳转的方式: 1. **启动模式(Start Activity Options)**:如果你想要控制跳转动画、是否堆栈返回等细节,可以创建一个新的Intent,并设置启动模式属性如FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_CLEAR_TOP等。 ```java Intent intent = new Intent(this, NextActivity.class); startActivity(intent, new Intent().setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); ``` 2. **使用`Fragment`**:如果跳转的是另一个完整的界面,可以使用`FragmentTransaction`或`NavController`从一个`Fragment`跳转到另一个`Fragment`。 3. **`Intent`启动器(Intent Launcher)**:直接使用`startActivity()`方法启动一个新的Activity。这是最基本的形式,适用于简单的页面切换。 4. **使用`ViewModel`或`LiveData`数据共享**: 当前Activity需要传递数据给下一个Activity,你可以通过ViewModel、BroadcastReceiver或者保存在SharedPreferences等方式传递数据,然后在下一个Activity获取并处理。 5. **使用`NavGraph`(导航图)**:在AndroidX Navigation库,通过`navHostController`方法创建导航图,可以在XML文件定义清晰的导航路径,更便于管理复杂的跳转流程。 无论哪种方式,记得在AndroidManifest.xml配置好目标Activity,并妥善处理异常情况,比如用户按下back键时的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值