Android笔记06-不同activity中数据的传递

这篇博客探讨了Android中如何利用bundle在不同activity间传递数据。Bundle作为一个键值对集合,作为intent的载体,实现了数据的储存与交换。在activity之间,intent如同信使,而bundle则是承载信息的信件。博主分享了如何通过putXXX()方法将数据存入bundle,再通过intent的putExtras()进行传递,从而在activity间进行数据传输的步骤和示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android笔记06-不同activity中数据的传递

概述:通常,我们输入点什么信息,然后点击确定按钮,页面就会跳转到别的activity中,比如说输入账号密码,跳转到自己的主页。这其中涉及到不同activity中数据的传输,bundle功不可没。

Bundle的理解

Bundle可以实现不同activity间切换并且实现数据储存与交换功能

Activity和activity中间可以用intent传递数据,但是本身intent并不具备储存功能,要借助bundle。可以理解为intent是信使,bundle是信

在这里插入图片描述

Bundle是一些键值对的集合

activity B接到信件的时候,打开看,就是看到下表这些东西。别人不一定看得懂,但是activityB就是知道拿到这些值要干啥,这是activity A和B之间的“摩斯密码”。(当然“莫斯密码”也是你自己定规则的)

关键字
key1value1
key2value2
…………

怎么使用bundle实现数据储存与交换

数据可以通过==putXXX();方法存在bundle中,然后再通过putExtras()方法放在intent中,intent就可以用startActivity()==存在activity中,就实现了数据的传递

比如说输入内容后,点击一个按钮,跳转activity,

思路
在xml中定义一个按钮和一个EditText
在MainActivity.java文件中找到刚定义的按钮和EditText组件
给该按钮装一个监听器
重写按钮的onClick方法
用EditText的`getText`的方法得到输入内容
用`toString`方法转换成字符串
逐个定义输入的信息值
if任意一个信息值为空
报错
if所有信息值不为空
new一个intent
new一个Bundle
用`putCharSequence`的方法储存数据到bundle中
用`putExtras`方法把数据放在intent中
startActivity
在Activity2.java中重写onCreat方法
设置Activity2的布局文件
得到MainActivity.java中的intent
用intent的`getExtras`方法找到bundle
用`getString`方法得到bundle中的值
获取用于显示的文本框
用`setText`方法在文本框中显示
MainActivity.java文件代码如下
//前面new一个button和edit text这些基本设置就不写了
public void onClick(View v){
    String s1=((EditText)findViewById(R.id.et_s1)).getText().toString(); //找到xml中的EditText组件,并且得到这个组件的输入值,并且转换成string值
    if(!"".equals(s1)){  
        Intent intent = new Intent(MainActivity.this,Activity2.class); //Activity2就是要跳转的页面
        Bundle bundle = new Bundle();
        bundle.putCharSequence("key1",value1); //这里按照键值对的形式储存,就像上文所说那样
        intent.putExtras(bundle);
        startActivity(intent);
    }
}
Activity2.java文件代码如下
public class Activity2 extends Activity(BuddlesavedInstanceState) {
    super.onCreat(savedInstanceState);
    setContentView(R.layout.activity2); //找到activity2的xml文件
    Intent intent = getIntent();//得到MainActivity.java中的intent
    Bundle bundle = intent.getExtras(); //得到intent中的buddle
    String name = buddle.getString("key1"); //得到key1中的值
    TextView t1 =(TextView)findViewById(R.id.key1); //找到xml中的TextView组件
    t1.setText("key1"); //显示key1对应的值

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值