IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android笔记06-不同activity中数据的传递 -> 正文阅读

[移动开发]Android笔记06-不同activity中数据的传递

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对应的值

}
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-07 12:12:20  更:2021-08-07 12:12:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 -2025/2/5 22:41:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码