【实战】qq登录界面及回显用户的账户和密码
来源:互联网 发布:oracle distinct 优化 编辑:程序博客网 时间:2024/05/21 14:53
用户第一次登录的时候,勾选记住用户名和密码操作,会将此时的用户名和密码写入文件中,第二次访问的时候会读写入第一次的数据。
第一种方式是通过建立文件的方式:
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; @Override protected 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"/> <EditText android:id="@+id/qqnumber" android:hint="请输入qq号码" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <EditText android:id="@+id/qqpassword" android:inputType="textPassword" android:hint="请输入qq密码" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <CheckBox android: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; @Override protected 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(); } } }
阅读全文
0 0
- 【实战】qq登录界面及回显用户的账户和密码
- 【实战】qq账户和密码的发送器
- windows server 2003 用户账户的密码和用户配置文件
- 登录界面及记住密码的实现
- 数据存储,实现用户登录界面及记住密码的实现。
- 安卓学习之获取QQ登录账户和密码并发送短信
- 开源pfsense修改初始登录账户和密码的解决方法
- QQ用户的帐号和密码安全
- 制作精美的QQ聊天界面和登录界面详解
- 类似QQ登录界面的状态控件(DLL文件和源代码及实例)
- 设置activemq登录账户和密码
- 设置activemq登录账户和密码
- WIN7笔记本 用户账户登录密码忘记/错误解决方法
- 账户密码自动登录
- 用户登录和记录密码
- ubuntu的root用户登录登出及密码设置
- 登录界面的密码设置
- 实现QQ登录界面,密码框出现提示文字的效果
- 成为一个高效的web开发人员,只需要三步
- SUI Mobile 标签页
- 《快速软件开发》概要
- Vue入门笔记
- MFC——VS2010串口通信的编写教程
- 【实战】qq登录界面及回显用户的账户和密码
- 51nod 1488 帕斯卡小三角 单调栈维护凸壳+二分
- 在HTML 里面 <div> <br> <p> <span>的区别
- Makefile模板解析
- ABP官方文档(七)【依赖注入】
- onSaveInstanceState和onRestoreInstanceState
- 超级详细的客户端服务器简单通信
- JS中获取标签的宽和高
- linux入门8