Android开发保存QQ密码功能

作者:Lssの老父亲 时间:2021-09-10 06:44:27 

本文实例为大家分享了Android保存QQ密码功能的具体代码,供大家参考,具体内容如下

技术要点:

使用文件储存的方式保存数据

实现步骤:

①用户交互界面的设计与实现
②工具类(FileSaveQQjava )的设计与实现
③界面逻辑代码的设计与实现

页面布局请看:Android开发实现简单QQ登录页面

MainActivity.java代码:

package com.example.saverqq;
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 Button etLogin;
    private EditText etPassword;
    private EditText etNumber;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化view
        initView();
        //如果用户已经保存过就进行数据回显
        Map<String, String> userInfo = FileSaveQQ.getUserInfo(this);
        if (userInfo!=null) {
            etNumber.setText(userInfo.get("number"));
            etPassword.setText(userInfo.get("password"));
        }
    }
    private void initView() {
//初始化控件
        etNumber = (EditText) findViewById(R.id.et_number);
        etPassword = (EditText) findViewById(R.id.et_password);
        etLogin = (Button) findViewById(R.id.btn_login);
        //设置按钮点击事件
        etLogin.setOnClickListener(this);
    }
    @Override
    public void onClick(View view) {
        //点击按钮获取账号密码
        String number = etNumber.getText().toString().trim();
        String password = etPassword.getText().toString().trim();
        if (TextUtils.isEmpty(number)) {
            Toast.makeText(this, "请输入QQ账号", Toast.LENGTH_LONG).show();
            return;
        }
        if (TextUtils.isEmpty(password)) {
            Toast.makeText(this, "请输入QQ密码", Toast.LENGTH_LONG).show();
            return;
        }
        Toast.makeText(this, "登录成功", Toast.LENGTH_LONG).show();
//保存用户信息
        boolean isSaveSucess = FileSaveQQ.saveUserInfo(this, number, password);
        if (isSaveSucess) {
            Toast.makeText(this, "保存成功", Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(this, "保存失败", Toast.LENGTH_LONG).show();
        }
    }
}

FileSaveQQ.java文件代码:

package com.example.saverqq;
import android.content.Context;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;
public class FileSaveQQ {
    //保存用户信息
    public static boolean saveUserInfo(Context context, String number, String password) {
        try {
            //通过上下流获取文件输出流
            FileOutputStream fos = context.openFileOutput("data.txt", context.MODE_PRIVATE);
            //把数据写到文件中
            fos.write((number + ":" + password).getBytes());
            fos.close();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
    //从data.txt文件中读取QQ账号和密码
    public static Map<String, String> getUserInfo(Context context) {
        String content = "";
        try {
            FileInputStream fis = context.openFileInput("data.txt");
            byte[] buffer = new byte[fis.available()];//设置缓冲区的大小
            fis.read(buffer);//读到缓冲区
            Map<String, String> userMap = new HashMap<String, String>();
            content=new String(buffer);
            String[] infos = content.split(":");//以 :切割字符串
            userMap.put("number", infos[0]);
            userMap.put("password", infos[1]);
            fis.close();
            return userMap;
        } catch (Exception e) {
            return null;
        }
    }
}

参考图书《Android移动开发基础案例教程》

来源:https://blog.csdn.net/qq_50982405/article/details/113179932

标签:Android,QQ,密码
0
投稿

猜你喜欢

  • 深入学习java位运算的基础知识

    2021-06-01 07:10:40
  • 详解HDFS多文件Join操作的实例

    2023-09-20 07:44:14
  • java集合继承关系图分享

    2023-04-25 17:17:23
  • SpringBoot实现过滤器和拦截器的方法

    2022-10-21 23:29:34
  • 详解Android Studio如何导入第三方类库、jar包和so库

    2022-01-04 22:27:54
  • c# webapi 配置swagger的方法

    2022-03-21 23:38:19
  • 第三方包jintellitype实现Java设置全局热键

    2023-09-25 10:33:50
  • Spring中@Scheduled和HttpClient的连环坑

    2023-10-19 23:06:00
  • C#如何删除指定文件或文件夹

    2022-06-30 21:28:49
  • Android webview与js的数据交互

    2021-08-18 02:56:32
  • Java画笔的简单实用方法

    2021-11-01 05:38:10
  • Java实现画图 给图片底部添加文字标题

    2023-03-28 23:23:06
  • c#创建浮动工具栏功能示例

    2022-08-31 01:08:31
  • Android日期时间格式国际化的实现代码

    2023-08-28 04:44:42
  • Spring Boot启动banner定制的步骤详解

    2023-03-04 19:30:20
  • Spring之IOC详解

    2022-10-13 19:10:24
  • Flutter Shell自动化打包解放双手

    2021-09-17 18:39:15
  • Android ScrollView 下嵌套 ListView 或 GridView出现问题解决办法

    2023-03-31 07:17:04
  • Android 调用百度地图API示例

    2023-11-18 00:40:37
  • Java简单从文件读取和输出的实例

    2023-04-04 20:16:45
  • asp之家 软件编程 m.aspxhome.com