目录

  • (—)数据存储
  • (二)共享参数
    • 1、共享参数概述
    • 2、利用共享参数读写文件步骤
  • (三)案例演示:多窗口共享数据
    • 1、创建安卓应用
    • 2、准备图片素材
    • 3、主界面类更名
    • 4、创建第二界面类
    • 5、字符串资源文件
    • 6、第一界面布局资源文件
    • 7、第二界面布局资源文件
    • 8、第一界面类实现功能
    • 9、第二界面类实现功能
    • 10、启动应用,查看效果
    • 11、查看保存数据的文件

(—)数据存储

  • 共享参数
  • 文件流操作
  • SQLite应用
  • XML与JSON解析
  • 安卓应用资源

(二)共享参数

1、共享参数概述

  • 安卓提供了一种简单的数据存储方式SharedPreferences [共享偏好],这是一种轻量级的数据保存方式,用来存储一些简单的配置信息,以键值对的方式存储在一个XML文件中。

2、利用共享参数读写文件步骤

  • 利用Activity的getPreferences(name, mode)方法得到SharedPreferences对象
  • 使用SharedPreferences对象的edit()得到Editor对象
  • 利用Editor对象的putXxx()方法实现数据写入;利用SharedPreferences对象的getXxx()实现数据读取
  • 对于写入操作,利用Editor对象的commit()方法提交数据到指定的文件里

(三)案例演示:多窗口共享数据

1、创建安卓应用

  • 基于Empty Activity模板创建安卓应用 - ShareData

2、准备图片素材

  • 将背景图片拷贝到drawable目录

3、主界面类更名

  • 将MainActivity更名为FirstActivity,对应的布局文件actiivty_main.xml更名为activity_first.xml

4、创建第二界面类

  • 基于Empty Activity模板创建第二界面类
    -

5、字符串资源文件

  • 字符串资源文件 - strings.xml
<resources><string name="app_name">多窗口共享数据</string><string name="write_data">写入数据</string><string name="read_data">读取文件</string><string name="jump_to_second">跳转第二个窗口</string>
</resources>

6、第一界面布局资源文件

  • 第一界面布局资源文件 - activity_first.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/book2"android:orientation="vertical"android:gravity="center"tools:context=".FirstActivity"><Buttonandroid:id="@+id/btn_write_data"android:layout_width="200dp"android:layout_height="wrap_content"android:onClick="doWriteData"android:text="@string/write_data"android:textSize="20sp" /><Buttonandroid:id="@+id/btn_jump_to_second"android:layout_width="200dp"android:layout_height="wrap_content"android:onClick="doJumpToSecond"android:text="@string/jump_to_second"android:enabled="false"android:textSize="20sp" />
</LinearLayout>
  • 查看预览效果

7、第二界面布局资源文件

  • 第二界面布局资源文件 - activity_second.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/book3"android:gravity="center"android:orientation="vertical"tools:context=".SecondActivity"><Buttonandroid:id="@+id/btn_read_data"android:layout_width="220dp"android:layout_height="wrap_content"android:text="@string/read_data"android:onClick="doReadData"android:textSize="20sp"/><TextViewandroid:id="@+id/tv_person_info"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:textSize="20sp"/>
</LinearLayout>
  • 查看预览效果

8、第一界面类实现功能

  • 第一界面类 - FirstActivity
  • 声明变量和常量
    - 获取共享参数对象
  • 获取编辑器对象
  • 编写【写入数据】按钮单击事件处理方法
  • 编写【跳转到第二个窗口】按钮单击事件处理方法
  • 查看完整源代码
package net.sl.share_data;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;import net.sl.share_data.SecondActivity;public class FirstActivity extends AppCompatActivity {private static final String NAME = "person_info"; // 配置文件名private static final int MODE = Context.MODE_PRIVATE; // 文件访问模式private SharedPreferences sp; // 共享参数对象private SharedPreferences.Editor editor; // 编辑器对象@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 利用布局资源文件设置用户界面setContentView(R.layout.activity_first);// 获取共享参数对象sp = getSharedPreferences(NAME, MODE);// 获取编辑器对象editor = sp.edit();}/*** 【写入数据】按钮单击事件处理方法** @param view*/public void doWriteData(View view) {// 将数据写入编辑器editor.putString("name", "粟林");editor.putString("gender", "男");editor.putInt("age", 20);editor.putString("hobby", "唱,跳,rap");// 提交数据,写入到指定的文件if (editor.commit()) {Toast.makeText(this, "恭喜,数据写入文件成功!", Toast.LENGTH_SHORT).show();findViewById(R.id.btn_jump_to_second).setEnabled(true); // 让【跳转到第二个窗口】按钮可用} else {Toast.makeText(this, "遗憾,数据写入文件失败!", Toast.LENGTH_SHORT).show();}}/*** 【跳转到第二个窗口】单击事件处理方法** @param view*/public void doJumpToSecond(View view) {// 创建跳转到第二个窗口的意图Intent intent = new Intent(this, SecondActivity.class);// 按意图启动第二个窗口startActivity(intent);}
}

9、第二界面类实现功能

  • 第二界面类 - SecondActivity
  • 定义常量和变量
  • 通过控件资源标识符获得控件实例
  • 获取共享参数对象
  • 编写【读取数据】按钮单击事件处理方法
  • 查看完整代码
package net.sl.share_data;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;public class SecondActivity extends AppCompatActivity {private static final String NAME = "person_info"; // 配置文件名private static final int MODE = Context.MODE_PRIVATE; // 文件访问模式private SharedPreferences sp; // 共享参数对象private TextView tvPersonInfo; // 个人信息标签@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 利用布局资源文件设置用户界面setContentView(R.layout.activity_second);// 通过控件资源标识符获得控件实例tvPersonInfo = findViewById(R.id.tv_person_info);}/*** 【读取数据】单击事件处理方法** @param view*/public void doReadData(View view) {// 通过共享参数对象读取文件数据String name = sp.getString("name", "");String gender = sp.getString("gender", "");int age = sp.getInt("age", 0);String hobby = sp.getString("hobby", "");// 创建个人信息字符串生成器StringBuilder builder = new StringBuilder();builder.append("姓名:" + name + "\n").append("性别:" + gender + "\n").append("年龄:" + age + "\n").append("爱好:" + hobby);// 获取个人信息字符串String personInfo = builder.toString();// 通过吐司显示个人信息Toast.makeText(this, personInfo, Toast.LENGTH_SHORT).show();// 将个人信息显示在标签里tvPersonInfo.setText(personInfo);}
}

10、启动应用,查看效果

  • 首先写入数据到文件,然后跳转到第二个窗口,最后读取文件数据

11、查看保存数据的文件

  • View | Tool Windows | Device File Explorer

Android Studio页面跳转共享参数相关推荐

  1. Android 学习(四)——Android Studio 页面跳转

    一.显式意图跳转 1.设置按键(参考第三次作业:设置按键的三种基本方式) 2.新建Activity2 3.按键侦听,设置页面跳转 Intent intent = new Intent(this,Mai ...

  2. Android Studio实现跳转绘画(简易)

    Android Studio实现跳转和绘画 一:Android StudionUI基本操作熟悉 整体功能的实现:当输入正确的账号和密码的时候,会跳转到下一个界面,在下一个界面当中绘画的话,会绘制出来一 ...

  3. android判断参数非空,Android Studio注释模板Live Templates参数获取不到为null的一些

    Android Studio注释模板Live Templates参数获取不到为null的一些 Android Studio注释模板Live Templates参数获取不到为null的一些解决方法 提示 ...

  4. 微信小程序开发-页面跳转传递参数

    微信小程序开发-页面跳转传递参数 页面跳转有四种方式,分别为wx.navigateTo.wx.redirectTo.wx.reLaunch.wx.switchTab,前面三种可通过url路径携带参数实 ...

  5. Android实现页面跳转

    一. Android实现页面跳转有两种方式,一种为.MainActivity跳转:第二种是Relatelayout布局跳转,首先看第一种方式 1. MainActivity区域设置 public cl ...

  6. php页面跳转参数传递参数,php页面跳转怎样传递参数

    [摘要] PHP即"超文本预处理器",是一种通用开源脚本语言.PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言.PHP独特的语法混合了C.Java.Perl以及 ...

  7. 解决部分android手机页面跳转的黑白屏、闪屏、显示桌面背景问题

    解决部分android手机页面跳转的黑白屏.闪屏.显示桌面背景问题 关于 修改后的方案效果图 问题思路及解决办法 最终方案 关于   今天在查看登录页面美观度的时候意外发现手上的oppo手机在页面跳转 ...

  8. android h5页面跳转,android H5 应用内跳转Scheme协议

    什么是URL Scheme 概述: android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面:通过scheme协议 ...

  9. 实现android多页面跳转,获取数据操作

    准备工具:安卓开发工具 实现页面效果: 1.第一页面:要求停留三秒跳转第二页面 2.第二页面,要求:获取输入的数据点击确定按钮跳转第三页面并数据传入第三页面 3.第三页面:要求:接收第二页面数据显示在 ...

最新文章

  1. POJ 1789 Truck History
  2. 不到400元,将你的手机变成可编程AI机器人丨英特尔出品
  3. 【转】Android兼容性测试CTS Verifier-环境搭建、测试执行、结果分析
  4. 可执行文件添加快捷方式_如何停止Windows向快捷方式文件名添加“-快捷方式”...
  5. java集合——集合与数组间的转换+算法
  6. php实现注册登陆验证
  7. android转流媒体,android 4.4中的流媒体渲染过程
  8. 服务器预装操作系统,服务器预装操作系统吧
  9. 我要带徒弟学写JAVA架构,引路架构师之路
  10. cuda编程python接口_混合编程[python+cpp+cuda]
  11. js 对一个字段去重_js正则去重及(?=)的匹配规则
  12. 加密算法在windows,linux下的检测办法[md5,sha1]
  13. 安卓post 提交图片流和字符数据
  14. 黑马程序员2022年最新软件测试学习路线
  15. 符号执行技术总结(A Brief Summary of Symbol Execution)- wcventure
  16. 关于Halcon的离心机试管槽定位
  17. 手机投屏不是全屏怎么办_手机投屏不满屏怎么办
  18. 发送邮件错误常见错误码
  19. Ten Googol
  20. 最新电容笔推荐,2022年电容笔十大品牌排行榜

热门文章

  1. 【cmd】linux常用命令的英文单词缩写
  2. Linux多线程---线程概念和线程控制
  3. naarray查询 swift_VLOOKUP查询时为什么会出现NA?原来知道这6种解决方法这么重要...
  4. 电脑知识 小技巧汇总
  5. 《动手学深度学习》—学习笔记
  6. uniapp下载图片并保存到相册
  7. WPS增加正则处理函数,简直如虎添翼
  8. java数据结构红黑树上旋下旋_存储系统的基本数据结构之一: 跳表 (SkipList)
  9. JAVA 单调区间 交集_2015百度之星 单调区间
  10. 低成本 低功耗2.4G无线SOC芯片 nRF51802 低功耗 高性价比芯片