FileSaveQQ.java

package njitt.software.saveqq;

import android.content.Context;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.HashMap;

import java.util.Map;

public class FileSaveQQ {

//保存QQ账号和登录密码到data.txt文件中

public static boolean saveUserInfo(Context context, String account, String

password) {

FileOutputStream fos = null;

try {

//获取文件的输出流对象fos

fos = 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();

}

}

}

//从data.txt文件中获取存储的QQ账号和密码

public static Map getUserInfo(Context context) {

String content = "";

FileInputStream fis = null;

try {

//获取文件的输入流对象fis

fis = context.openFileInput("data.txt");

//将输入流对象中的数据转换为字节码的形式

byte[] buffer = new byte[fis.available()];

fis.read(buffer);//通过read()方法读取字节码中的数据

content = new String(buffer); //将获取的字节码转换为字符串

Map userMap = new HashMap();

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();

}

}

}

}

MainActivity.java

package njitt.software.saveqq;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.text.TextUtils;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import java.util.Map;

public class MainActivity extends AppCompatActivity implements View.OnClickListener

{

private EditText et_account; //账号输入框

private EditText et_password; //密码输入框

private Button btn_login; //登录按钮

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

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

// Map userInfo = FileSaveQQ.getUserInfo(this);

Map userInfo = SPSaveQQ.getUserInfo(this);

if (userInfo != null) {

et_account.setText(userInfo.get("account")); //将获取的账号显示到界面上

et_password.setText(userInfo.get("password")); //将获取的密码显示到界面上

}

}

private void initView() {

et_account = (EditText) findViewById(R.id.et_account);

et_password = (EditText) findViewById(R.id.et_password);

btn_login = (Button) findViewById(R.id.btn_login);

//设置按钮的点击监听事件

btn_login.setOnClickListener(this);

}

@Override

public 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();

//保存用户信息

boolean isSaveSuccess = FileSaveQQ.saveUserInfo(this, account,

password);

/* boolean isSaveSuccess = SPSaveQQ.saveUserInfo(this, account, password);*/

if (isSaveSuccess) {

Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(this, "保存失败", Toast.LENGTH_SHORT).show();

}

break;

}

}

}

SPSaveQQ.java

package njitt.software.saveqq;

import android.content.Context;

import android.content.SharedPreferences;

import java.util.HashMap;

import java.util.Map;

public class SPSaveQQ{

// 保存QQ账号和登录密码到data.xml文件中

public static boolean saveUserInfo(Context context, String account,

String password) {

SharedPreferences sp = context.getSharedPreferences("data",

Context.MODE_PRIVATE);

SharedPreferences.Editor edit = sp.edit();

edit.putString("userName", account);

edit.putString("pwd", password);

edit.commit();

return true;

}

//从data.xml文件中获取存储的QQ账号和密码

public static Map getUserInfo(Context context) {

SharedPreferences sp = context.getSharedPreferences("data",

Context.MODE_PRIVATE);

String account = sp.getString("userName", null);

String password = sp.getString("pwd", null);

Map userMap = new HashMap();

userMap.put("account", account);

userMap.put("password", password);

return userMap;

}

}

activity_main.xml

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#E6E6E6"

android:orientation="vertical"

android:padding="10dp">

android:layout_width="70dp"

android:layout_height="70dp"

android:layout_centerHorizontal="true"

android:layout_gravity="center_horizontal"

android:layout_marginTop="30dp"

android:src="@drawable/head" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="15dp"

android:background="@android:color/white"

android:orientation="horizontal">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:padding="10dp"

android:text="账号:"

android:textColor="#000"

android:textSize="20sp" />

android:id="@+id/et_account"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginLeft="5dp"

android:background="@null"

android:padding="10dp" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="10dp"

android:background="@android:color/white"

android:orientation="horizontal">

android: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" />

android: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" />

android: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" />

实现效果如下:

标签:QQ,Toast,account,java,String,基础教程,import,Android,password

来源: https://blog.csdn.net/m0_46412771/article/details/105866774

android 帐号密码xml,《Android移动应用基础教程》之保存QQ账号和密码相关推荐

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

    大家好,我是汤姆凯特. 写在前面:今天用保存QQ账号和密码的实战演练,带大家掌握Android存储中最基本的文件存储方式 文件存储是Android中最基本的一种数据存储方式,它与Java中的文件存储类 ...

  2. 安卓---第5章 数据存储---保存QQ账号与密码

    文章目录 案例1: 使用文件存储 保存QQ账号与密码 功能描述 saveqq_1.xml FileSaveQQ.java saveqq_1 案例2 使用SP保存QQ账号与密码 功能描述 SPSaveQ ...

  3. 《Android移动应用基础教程》之保存QQ账号和密码

    FileSaveQQ.java package njitt.software.saveqq;import android.content.Context;import java.io.FileInpu ...

  4. 实战演练--保存QQ账号与密码

    1.布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro ...

  5. 简单步骤,使用 Android studio 实现保存 QQ 账号密码,和简易 QQ 用户登录界面

    利用 Android studio 2021 软件输出一个简易用户登录界面,拥有头像并且能够实现对自行输入的账号密码进行保存,文件名为 saveqq,功能实现对账号与密码的输入和存储,简单QQ界面布局 ...

  6. android移动应用基础教程--qq账号与密码

    android移动应用基础教程--qq账号与密码 android移动应用基础教程p115案例 实战演练-保存QQ账号密码. activity_main.xml <?xml version=&qu ...

  7. QQ提示当前网页非官方页面,请勿输入QQ账号和密码,如需访问,请复制后使用浏览器访问...

    QQ提示当前网页非官方页面,请勿输入QQ账号和密码,如需访问,请复制后使用浏览器访问  Lan   2020-05-13 17:41   751 人阅读  0 条评论 昨天,我的这个博客在QQ上进行访 ...

  8. 关于使用AccountManager的remove删除Android帐号的细节

    Android系统中可以使用AccountManager服务进行帐号的管理(添加,删除,以及其他属性的设置和访问),本文档主要讨论调用remove删除帐号的情况.AccountManager系统服务中 ...

  9. Android动态加载XML文件及控件来简单实现QQ好友印象的功能

    在android开发中,我们常常会遇到界面布局控件不确定的情况.由于某些功能的原因或者为了体现某些app的特色等这些原因会导致我们在实现界面布局时需要动态去加载一些控件,那么下面就来介绍一下如何用动态 ...

最新文章

  1. 参加UI培训有发展吗?
  2. JS 总结之函数、作用域链
  3. 腾讯AI Lab正式开源业内最大规模多标签图像数据集
  4. How to ignore files and directories in subversion?
  5. 739. 每日温度 golang
  6. PRNet:人脸3D重建与密集对齐
  7. 解决Linux出现“cannot create temp file for here-document: No space left on device”的问题
  8. 咋做数据分析,张口就来RFM模型,结果用错了
  9. 效率源希捷硬盘修复(4.2版)及程序下载
  10. 工业机器人图册 索罗门采夫_机械手控制电路 机电一体化毕业设计论文.doc
  11. miui中的网页链接调用服务器,miui新增网页链接调用服务有什么用?
  12. 如何通过树莓派/Python/smtp发送电子邮件
  13. AEC、AGC、ANS是什么意思?
  14. 反恐精英系列《CS 2》将于今夏推出,在起源2的加持下视觉、玩法和环境效果可谓十分震撼
  15. mac系统可以进行软件测试吗,iPhone和Mac如何加入Apple Beta版软件测试计划
  16. 【深度学习模型】讲讲横扫nlp任务的BERT模型
  17. Codeforces 892A. Greed
  18. Unity C# 批量处理 命名空间 修改
  19. WIN10 VS2013 GTX960M NVIDIA显卡驱动和CUDA7.5安装 配置Caffe
  20. C#文件操作相关语句 - 大全

热门文章

  1. 用ACCESS2010打文出现件“system.ltb”版本2.0,丢失或损坏的应用的解决办法
  2. 【springCloud搭建】五、集成mybatis-plus
  3. 同一局域网下Windows电脑和IOS设备共享文件,不需要安装软件
  4. 2023年软件测试经典面试题(全三篇)【包含答案】做完面试进入大厂不是梦
  5. word无法显示图片的问题终于搞定!oh yeah!
  6. 百度区块链狗子四只领取链接
  7. RK3399 Android7.1 try 'jack-diagnose' or see Jack server log
  8. 大陆服务器和香港服务器的区别
  9. 查询重复项以及删除重复项
  10. [思维]Folding a Ribbon