【Android实战】保存QQ账号与密码

在这里插入图片描述

大家好,我是汤姆凯特。

在这里插入图片描述

写在前面:今天用保存QQ账号和密码的实战演练,带大家掌握Android存储中最基本的文件存储方式

文件存储是Android中最基本的一种数据存储方式,它与Java中的文件存储类似,都是通过I/O流形式把数据直接存储到文件中,下面我们一起来看一下如何用Android实现文件存储功能吧!

文章目录

    • 1.UI界面
      • 1)垂直线性布局为整体框架
      • 2)头像获取
      • 3)子线性布局编辑框和密码框
      • 4)登录button按钮
    • 2.构建工具类
      • 1)将数据存入文件
      • 2)从文件中读取数据
    • 3.编写界面交互代码
      • 1)读取文件
      • 2)按钮监听事件
      • 3)保存登录信息
    • 4.运行程序
    • 5.查看文件所处位置

1.UI界面

1)垂直线性布局为整体框架

2)头像获取

3)子线性布局编辑框和密码框

4)登录button按钮

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#E6E6E6"android:orientation="vertical"android:padding="10dp"><ImageViewandroid:layout_width="70dp"android:layout_height="70dp"android:layout_centerHorizontal="true"android:layout_gravity="center_horizontal"android:layout_marginTop="30dp"android:src="@drawable/head" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="15dp"android:background="@android:color/white"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="10dp"android:text="账号:"android:textColor="#000"android:textSize="20sp" /><EditTextandroid:id="@+id/et_account"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:background="@null"android:padding="10dp" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:background="@android:color/white"android:orientation="horizontal"><TextViewandroid:id="@+id/tv_password"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="10dp"android:text="密码:"android:textColor="#000"android:textSize="20sp" /><EditTextandroid:id="@+id/et_password"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:background="@null"android:inputType="textPassword"android:padding="10dp" /></LinearLayout><Buttonandroid:id="@+id/btn_login"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="25dp"android:background="#3C8DC4"android:text="登录"android:textColor="@android:color/white"android:textSize="20sp" />
</LinearLayout>

2.构建工具类

1)将数据存入文件

Android开发中,内部存储使用的是Context提供的openFileOutput()方法这个方法能够返回进行写操作的FileOutputStream对象,示例如下:

FileOutputStream fos = openFileOutput(String name, int mode);

其中参数name表示文件名,mode表示文件的操作模式,也就是读写文件的方式。mode的取值有4种,具体如下:

  • MODE_PRIVATE:该文件只能被当前程序读写
  • MODE_APPEND:该文件的内容可以追加
  • MODE_WORLD_READABLE:该文件的内容可以被其他程序读
  • MODE_WORLD_WRITEABLE:该文件的内容可以被其他程序写

存储数据时,使用FileOutputStream对象将数据存储到文件中,创建了一个saveUserInfo()方法,用于将QQ账号和密码保存到data.txt文件中。

    //保存QQ账号和登录密码到data.txt文件中public static boolean saveUserInfo(Context context, String account, Stringpassword) {FileOutputStream fos = null;try {//获取文件的输出流对象fosfos = context.openFileOutput("data.txt",Context.MODE_PRIVATE);//将数据转换为字节码的形式写入data.txt文件中fos.write((account + ":" + password).getBytes());return true;} catch (Exception e) {e.printStackTrace();return false;}finally {try {if(fos != null){fos.close();}} catch (IOException e) {e.printStackTrace();}}}

2)从文件中读取数据

使用Context提供的openFileOutput()方法这个方法能够返回进行写操作的FileInputStream对象,示例如下:

FileInputStream fos = openFileInput(String name);

创建了一个getUserInfo()方法,用于从data.txt文件中获取QQ账号和密码。

需要注意的是,这里的存储和获取都是需要用字节码的形式,所以存取完再改为String类型。

 //从data.txt文件中获取存储的QQ账号和密码public static Map<String, String> getUserInfo(Context context) {String content = "";FileInputStream fis = null;try {//获取文件的输入流对象fisfis = context.openFileInput("data.txt");//将输入流对象中的数据转换为字节码的形式byte[] buffer = new byte[fis.available()];fis.read(buffer);//通过read()方法读取字节码中的数据content = new String(buffer); //将获取的字节码转换为字符串Map<String, String> userMap = new HashMap<String, String>();String[] infos = content.split(":");//将字符串以“:”分隔后形成一个数组的形式userMap.put("account", infos[0]);   //将数组中的第一个数据放入userMap集合中userMap.put("password", infos[1]); //将数组中的第二个数据放入userMap集合中return userMap;} catch (Exception e) {e.printStackTrace();return null;}finally {try {if(fis != null){fis.close();}} catch (IOException e) {e.printStackTrace();}}}

3.编写界面交互代码

1)读取文件

通过工具类FileSaveQQ中的getUserInfo()方法获取QQ账号和密码信息

        Map<String, String> userInfo = FileSaveQQ.getUserInfo(this);if (userInfo != null) {et_account.setText(userInfo.get("account"));   //将获取的账号显示到界面上et_password.setText(userInfo.get("password")); //将获取的密码显示到界面上}

2)按钮监听事件

创建一个initView()方法,用于初始化界面控件。再对onClick()方法重写,添加点击登录事件后的响应。

    private EditText et_account;   //账号输入框private EditText et_password;  //密码输入框private Button btn_login;       //登录按钮private void initView() {et_account =  findViewById(R.id.et_account);et_password =  findViewById(R.id.et_password);btn_login = findViewById(R.id.btn_login);//设置按钮的点击监听事件btn_login.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_login://当点击登录按钮时,获取界面上输入的QQ账号和密码String account = et_account.getText().toString().trim();String password = et_password.getText().toString();//检验输入的账号和密码是否为空if (TextUtils.isEmpty(account)) {Toast.makeText(this, "请输入QQ账号", Toast.LENGTH_SHORT).show();return;}if (TextUtils.isEmpty(password)) {Toast.makeText(this, "请输入密码", Toast.LENGTH_SHORT).show();return;}Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();break;}}

3)保存登录信息

调用工具类FileSaveQQ中的saveUserInfo()方法将登录信息保存到本地文件中。

 boolean isSaveSuccess = FileSaveQQ.saveUserInfo(this, account,password);if (isSaveSuccess) {Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();} else {Toast.makeText(this, "保存失败", Toast.LENGTH_SHORT).show();}

4.运行程序

在界面中输入账号和密码,点击“登录”按钮,会弹出“登录成功”与”保存成功“的提示信息

在这里插入图片描述

5.查看文件所处位置

1)View——Tool Windows ——Device

在这里插入图片描述

2)右侧的Device File Explorer ——data ——data ——项目包名——files
在这里插入图片描述


本期就结束了,如果对您有帮助,点赞+收藏支持一下博主再走吧
还没有关注汤姆的朋友,点个关注每天进步一点点
一起加油!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/59113.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于我发表了TalentOrg的面试文章而被官方的人找上门

关于我发表了TalentOrg的面试文章而被官方的人找上门 前情提要事情经过尝试联系正式沟通齿轮易创与TalentOrg主营业务雇主和工作方式关于时差和假期关于笔试关于面试关于简历翻译关于沟通和通知结尾 前情提要 我加入了TalentOrg&#xff0c;新奇之余就写了一篇文章&#xff0c…

应急响应 - Windows进程分析,Windows网络分析,tasklist,wmic process

「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 进程网络排查 一、Tasklist1、tasklist /v1、tasklist /svc2、tasklist /m 二、wmic proc…

Google也忍不住了,在海外试起了短视频带货

对比国内的情况&#xff0c;直播带货模式在海外才刚刚兴起&#xff0c;用户规模不够&#xff0c;生态不完善&#xff0c;平台之间也是割裂的。 「下午盯着某主播的直播预告&#xff0c;晚上再到他的直播间买买买」&#xff0c;成了国内年轻人的购物新常态。这股由国内兴起的直播…

商业转战短视频平台,浅看抖音的品牌营销特点

当前市场经济环境中&#xff0c;企业品牌拥有固定的粉丝群体并且粉丝黏性良好是增强品牌市场竞争力的关键。随着网络的推广普及&#xff0c;相关数据显示&#xff0c;抖音短视频是一个丰富的潜在市场&#xff0c;拥有大量的客户资源&#xff0c;为品牌营销创造了优良条件。那就…

短视频带货流程话术

现在短视频热度高涨&#xff0c;已经成为人们娱乐休闲的一种方式。短视频人流量大&#xff0c;已经衍生出了直播带货、橱窗链接带货等方式&#xff0c;也吸引了一批想要带货的用户。 前言 现在短视频热度高涨&#xff0c;已经成为人们娱乐休闲的一种方式。短视频人流量大&…

短视频带货如何进行选题和拍摄,启之航短视频代运营教你玩出新花样

导读&#xff1a;本期文章主要介绍短视频带货玩法的拍摄技巧和选题&#xff0c;带货短视频制作技巧的相关内容&#xff0c;本篇文章也是给一些新手玩家出一些过来人的运营教程。 随着现代社会抖音短视频带货玩法逐渐取代直播&#xff0c;短视频带货似乎已经成为未来引领电商发展…

短视频+内容营销,引流电商带货新浪潮

直播带货从诞生之初&#xff0c;到如今是越来越火了。很多的线下零售业开始转型&#xff0c;电商直播带货成为了新的经济浪潮。多渠道营销电商系统&#xff0c;可以搭建专属个性化微商城&#xff0c;有多种爆款营销模式&#xff0c;今天小编就来好好梳理一下。 一、 多渠道营销…

短视频推广转到直播领域,探店达人做好直播的秘诀是什么

每个人的日常生活中都伴随着各种各样的美食&#xff0c;每天都可以看到许多不同类型的餐饮店&#xff0c;在如今的短视频平台&#xff0c;餐饮达人绝对是带来流量的大户&#xff0c;但是现在做餐饮的达人越来越多&#xff0c;同行之间也存在巨大的竞争。 那么餐饮达人应该如何提…

自研的短视频自动生成以及带货管理平台

功能&#xff1a; 1.动态自动生成取名的抖音视频并且可以设置定时发布到抖音西瓜今日头条等平台、 2.货源采集 3.货源选品管理 4.选品自动发布到店铺(待开发) 5.订单同步&#xff08;待开发&#xff09; 6.货品自动生成带货短视频&#xff08;待开发&#xff09; 效果如…

抖音短视频带货的红利马上结束了+虚拟人能否代替直播带货?

我是沉睡者IT&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 抖音短视频带货的红利马上结束了 抖音电商目前有3个问题&#xff1a; 1&#xff0c;做好电商与视频内容的平衡 2&#xff0c;退货率高 3&#xff0c;价格贵 抖音做电商的决心很大&#xff0c;但这…

TikTok美国站能挂Shopify购物车啦 短视频带货时代真的来了吗

千呼万唤的TikTok美国购物车终于来啦&#xff01;近几个月跨境行业爆火的平台非TikTok莫属&#xff0c;跟TikTok相关的产品均受到极大的关注。今天特别给大家分享一个好消息&#xff0c;近日美国shopify购物车已经上线&#xff0c;而我们已经有客户顺利上线。 购物车和小黄车不…

如何制作打首板的量化策略

打首板&#xff0c;目前大多数都以量化机器人为主&#xff0c;下面就简单介绍一下&#xff0c;一个量化首板机器人的制作过程&#xff1a; 打首板&#xff0c;要解决两个问题&#xff1a; 1.炸板率 2.隔天溢价 第一步&#xff1a;炸板率问题&#xff1a;首先我们先用tushare的数…

男生vs女生,谁更加适合做软件测试?—我觉得男生更胜一筹!

前言 随着互联网的飞速发展&#xff0c;软件测试行业同步兴盛起来&#xff0c;逐渐出现了人才的短缺&#xff0c;致使行业人员工资一涨再涨。 所以&#xff0c;越来越多的人也开始意识到软件测试行业的”高薪“属性&#xff0c;转身投入到相关的工作中来。 但是&#xff0c;很多…

学计算机的男生喜欢什么样的女生,it男喜欢什么样的女孩

喜欢什么样的女孩子每个男生的定义都不一样,有些男生更喜欢性感魅惑的御姐范儿气质,当然,也有很多男生偏向甜美可爱风格的。那么it男喜欢什么样的女孩子呢? 来源:图虫作者:79054344888189459 虽然很多花心的男生喜欢的女孩子的类型是不固定的,而且一般都是见一个爱一个的,…

模拟器收短信和接电话的方法

有两种方法可以使用&#xff1a; 1、命令行&#xff1a; 首先开启模拟器&#xff0c;然后在命令行里输入&#xff0c;telnet localhost xxx&#xff0c;这里的xxx的地方填你所启动的模拟器的名称的前面几个数字&#xff0c;一般是5554&#xff1b;回车后出现OK就说明连接成功了…

Android实现打电话,发短信

一&#xff0c;需求 点击“打电话”进入拨号界面 长按“打电话”直接拨打电话 点击“发短信”进入编辑短信界面 长按“发短信”直接将短信发送出去 二&#xff0c;代码模块 AndroidManifest <!--打电话的权限 --><uses-permission android:name"android.permissi…

互联网早报:腾讯推出“微小号”,用虚拟手机号拨打电话收发短信

行业热点 1、腾讯推出“微小号”&#xff0c;用虚拟手机号拨打电话收发短信&#xff1b; 2、得物App:误操作发出数万 520 无门槛券,不是营销,订单算数&#xff1b; 3、滴滴网约车宣布进入南非市场&#xff0c;4 月将进入厄瓜多尔&#xff1b; 4、一季度抖音日活数据&#x…

【Andriod Studio实现拨打电话和发送短信功能】

Andriod Studio实现拨打电话和发送短信功能 在 Android Studio中创建项目&#xff0c;然后在该项目中创建一个Module名称为“IntentDial”。在该 Module中实现本实例&#xff0c;具体步骤如下: (1)在新建 Module的res\layout目录下下添加布局 文件shouji.xml&#xff0c;将添加…