用户第一次登录的时候,勾选记住用户名和密码操作,会将此时的用户名和密码写入文件中,第二次访问的时候会读写入第一次的数据。

第一种方式是通过建立文件的方式:

MainActivity.java:

package com.lcz.qq_login;import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStream;import android.os.Bundle;
import android.os.Environment;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.text.TextUtils;
import android.text.format.Formatter;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;@SuppressLint("NewApi") public class MainActivity extends Activity implements View.OnClickListener{private EditText qq_number;private EditText qq_password;private Button login_btn;private CheckBox cbx;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化控件qq_number=(EditText)findViewById(R.id.qqnumber);qq_password=(EditText)findViewById(R.id.qqpassword);login_btn=(Button)findViewById(R.id.btn_login);cbx=(CheckBox)findViewById(R.id.remember);login_btn.setOnClickListener(this);//File file=new File("/data/data/com.lcz.qq_login/info.txt");保存到应用程序中//File file=new File(this.getFilesDir(),"info.txt");保存到应用程序中//File file=new File(this.getCacheDir(),"info.txt");//保存到sd卡中File file=new File(Environment.getExternalStorageDirectory(),"info.txt");if(file.exists()&&file.length()>0){//读取file中的数据,然后回显try {BufferedReader br=new BufferedReader(new FileReader(file));String line=br.readLine();String num=line.split("#---#")[0];String pwd=line.split("#---#")[1];qq_number.setText(num);qq_password.setText(pwd);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} }}//点击登录后会执行login方法@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//获得输入框中写入的值String number=qq_number.getText().toString().trim();String password=qq_password.getText().toString().trim();//判断是否填入了number以及password的值if(TextUtils.isEmpty(number)||TextUtils.isEmpty(password)){//给用户提示,输入号码和密码Toast.makeText(this, "请输入qq号码和密码", Toast.LENGTH_SHORT).show();return;}//判断是否勾选 checkbox,如果勾选了checkbox,那么将qq号码和qq密码保存下来boolean isChecked=cbx.isChecked();if(isChecked){//勾选了的话,将数据保存起来//context:上下文//context:给用户显示的信息//duration:消息持续的时间   try {//File file=new File("/data/data/com.lcz.qq_login/info.txt");//File file=new File(this.getFilesDir(),"info.txt");保存到应用程序//File file=new File(this.getCacheDir(),"info.txt");//保存到应用程序中//File file=new File("/mnt/sdcard/info.txt");//File file=new File("/mnt/sdcard/info.txt");File file=new File(Environment.getExternalStorageDirectory(),"info.txt");OutputStream out=new FileOutputStream(file);String value=number+"#---#"+password;out.write(value.getBytes());out.close();Toast.makeText(this, "勾选了,保存成功", Toast.LENGTH_SHORT).show();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}else{//没有勾选的话,不保存数据Toast.makeText(this, "没有勾选,没有保存成功", Toast.LENGTH_SHORT).show();}}}

activity_main.xml:

<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:orientation="vertical"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><ImageView android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/qq"android:layout_gravity="center"/><EditTextandroid:id="@+id/qqnumber"android:hint="请输入qq号码" android:layout_width="fill_parent"android:layout_height="wrap_content"/><EditTextandroid:id="@+id/qqpassword"android:inputType="textPassword"android:hint="请输入qq密码" android:layout_width="fill_parent"android:layout_height="wrap_content"/><CheckBoxandroid:id="@+id/remember" android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="记住用户名和密码"/><Button android:id="@+id/btn_login"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="登录"/>
</LinearLayout>

第二种方式是通过sharedPreference来实现回显

sharedPreference是android中提供一个特有的用来保存数据的

MainActivity.java:

package com.itheima.qqlogin;import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.OutputStream;import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.text.TextUtils;
import android.text.format.Formatter;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;public class MainActivity extends Activity implements View.OnClickListener {private EditText ed_qqnumber;private EditText ed_qqpassword;private CheckBox cbx;private Button btn_login;private SharedPreferences sp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化控件 ed_qqnumber = (EditText) findViewById(R.id.qqnumber);ed_qqpassword = (EditText) findViewById(R.id.qqpassword);cbx = (CheckBox) findViewById(R.id.remember);btn_login=(Button) findViewById(R.id.btn_login);sp = getSharedPreferences("config", 0);// 如果找到了 number的 值, 那么 就 返回 number的值, 否则 就返回 这里的默认值 String num= sp.getString("number", "");String pwd= sp.getString("password", "");ed_qqnumber.setText(num);ed_qqpassword.setText(pwd);btn_login.setOnClickListener(this);}//点击 登录 后会执行 login 方法public void onClick(View v){//获得 输入 框 中  写入的 值 String number = ed_qqnumber.getText().toString().trim();String password = ed_qqpassword.getText().toString().trim();// 判断 是否 填入了 number以及 password的值 if(TextUtils.isEmpty(number)||TextUtils.isEmpty(password)){//给 用户提示,  输入 号码 和 密码Toast.makeText(this, "请输入 qq号码 和密码 ", 0).show();return;}//判断 是否勾选了checkbox ,如果勾选了checkbox ,那么就 将 qq号和密码 保存起来 boolean isChecked = cbx.isChecked();if(isChecked){//在勾选了  checkbox的时候, 将 数据保存起来 try {// 将数据 保存起来, 使用 sharedPreference// config文件将会生成 在 应用的文件夹下 --- 一个 xml 格式 的文件// 一般 情况下, 应用自己的数据 只有 当前应用 自己可以去读,  所以 通常 会写  sp = getSharedPreferences("config", 0);Editor editor = sp.edit();editor.putString("number", number);editor.putString("password", password);editor.commit();Toast.makeText(this, "勾选了, 保存成功", 0).show();} catch (Exception e) {e.printStackTrace();Toast.makeText(this, "勾选了, 没  保存成功", 0).show();}}else{//在没 勾选 checkbox的时候, 不保存数据 //说明没 勾选 Toast.makeText(this, "没 勾选了", 0).show();}}}

【实战】qq登录界面及回显用户的账户和密码相关推荐

  1. Android:登录保存回显用户信息或配置文件(sharedpreferences)

    登录保存回显用户信息或配置文件(sharedpreferences) 目录 登录保存回显用户信息或配置文件(sharedpreferences) 1.项目目录结构 二.类:MainActivity 三 ...

  2. java qq登录界面_用java实现QQ登录界面怎么写

    展开全部 用32313133353236313431303231363533e78988e69d8331333365646263java做QQ登录界面的写法如下: package ch10; impo ...

  3. 【React Native开发】React Native控件之TextInput组件讲解与QQ登录界面实现(11)

    转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50589570 本文出自:[江清清的博客] (一)前言 [好消息]个人 ...

  4. JavaSwing仿QQ登录界面,注释完善,适合新手学习

    使用说明: 这是一个java做的仿制QQ登录界面,界面仅使用一个类, JDK版本为jdk-11 素材包的名字为:素材(下载)请在项目中新建一个名字为"素材"的文件夹. 素材: ht ...

  5. 用combobox扩展控件(dsCtrlComboBox)做出类似QQ登录界面的效果

    原文地址:http://www.uieasy.cn/blog/?p=513 传统的combobox 在使用方面有很多限制,很难满足我们combobox类型控件的需求.主要表现中combobox内置的l ...

  6. java仿qq登录 界面设计,Java Swing仿QQ登录界面效果

    本文实例为大家分享了Java Swing仿QQ登录界面展示的具体代码,供大家参考,具体内容如下 闲来无事将早些时候已实现的QQ登录界面再实现了一遍,纯手工打造(意思是没有用NetBeans.MyEcl ...

  7. qq登录界面句柄_别小看QQ邮箱测试,80%的测试新手都不能写出完整的测试用例~...

    对于很多刚进入测试行业的新手来说,由于自身的工作经验不足,虽有测试基础知识傍身,但仍然很难将测试用例写的尽善尽美.因此,学习别人的测试经验,将是你成为测试达人的必经之路. 今天,我们就以QQ邮箱为例, ...

  8. java如何引入qq登陆,Java Swing仿QQ登录界面 学习之用

    闲来无事将早些时候已实现的QQ登录界面再实现了一遍,纯手工打造(意思是没有用NetBeans.MyEclipse的拖动功能). 源代码如下: package ibees.qq; import java ...

  9. Qt5学习笔记之QQ登录界面一:制作界面

    目录 概述 步骤 概述 B站发现这个QT教程视频,看了两集感觉讲的不错,上手挺简单.之前也接触过QT,一来是工作中用不到,没有动力.二来看到一堆的函数就头大记不住,什么设置起始坐标.居中.标题等等.没 ...

最新文章

  1. 2018.09.01 poj3071Football(概率dp+二进制找规律)
  2. 【BZOJ1305】 [CQOI2009]dance跳舞
  3. Ceryx —— 基于 OpenResty 的动态反向代理
  4. java中sizeof函数,C语言中,sizeof运算符有什么作用?
  5. QTableView中修改某个单元格或者行或者列内容颜色
  6. Java如何解析markdown_使用Java实现的一款Markdown解析器md2x
  7. 36、Power Query-多条件合并查询
  8. Android測试APP工具(一)
  9. gRPC官方快速上手学习笔记(c#版)
  10. 胡斌、张礼礤会摧毁我们的信任
  11. 一文带你了解数据中心大二层网络演进之路
  12. 李飞飞夫妇打造了两件秘密武器,让机器人快速学习人类技能
  13. leetcode —— 字符串相关(28、344)
  14. Json-getJSON
  15. wps显示ntko签章服务器,ntko-系统内装有OFFICE和WPS,如何让IE加载NTKOOFFICE时以office打开文件而不是以WPS打...
  16. 调用支付宝第三方支付接口详解(沙箱环境)
  17. SQL server 删除注册表
  18. MQ,究竟如何做到削峰填谷?
  19. 【翻译】关于ADXL345连接指南
  20. WebStorm SVN提交performing vcs refresh

热门文章

  1. 【WPS表格】制作会议桌牌
  2. js在不删除原有类名追加新类名方法
  3. freenas 蜗牛星际_蜗牛星际 篇三:蜗牛星际背板稳定性测试及后续思考(多图)
  4. 掌握这套逻辑,你也能设计出一把好看又吸引人的FPS武器
  5. CAD新手必练图形三
  6. iOS完整推流采集音视频数据编码同步合成流
  7. Java| unsupported major.minor version 52.0解决办法
  8. python爬取百度图片
  9. python的标志为什么是蛇_Guido给Python语言起名的原因是他家有只宠物蛇
  10. keil下载有时出现Verify Failed