android登陆界面保存账号密码附带源码

今天学了登陆界面账号密码保存。小项目,麻烦老鸟给指点下!


1、画登陆界面UI

新建android Application project,在layout文件中添加UI界面代码,如下:



    
    
    
    
    
    

(不清楚请参考我之前的博客:点击打开链接)

2.添加按钮点击事件,代码如下:

public class MainActivity extends ActionBarActivity {

    private TextView username;
    private TextView password;
	private CheckBox checkBox;
	private Button btn_login;

	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //初始化界面
        setContentView(R.layout.activity_main);
        username = (TextView) findViewById(R.id.et_username);
        password = (TextView) findViewById(R.id.et_password);
        checkBox = (CheckBox) findViewById(R.id.cb_issave);
        btn_login = (Button) findViewById(R.id.btn_login);
        //添加点击事件
        btn_login.setOnClickListener(new MyonclickListener());
        
            
        
    }
	private class MyonclickListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			
			//获取EditText控件数据
			String user = username.getText().toString().trim();
			String pwd = password.getText().toString().trim();
			
			//判断输入是否为空
			if (TextUtils.isEmpty(user)||TextUtils.isEmpty(pwd)){
				
				Toast.makeText(MainActivity.this, "账号或密码输入为空", Toast.LENGTH_SHORT).show();
			}
			
		}
		
	}
}
(不清楚请参考:点击打开链接)

3.保存账号密码信息,代码如下:

//这段代码在之前代码基础上添加 
private class MyonclickListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			
			//获取EditText控件数据
			String user = username.getText().toString().trim();
			String pwd = password.getText().toString().trim();
			
			//判断输入是否为空
			if (TextUtils.isEmpty(user)||TextUtils.isEmpty(pwd)){
				
				Toast.makeText(MainActivity.this, "账号或密码输入为空", Toast.LENGTH_SHORT).show();
			
			}else {
				
				//获取CheckBox控件账号
				boolean checked = checkBox.isChecked();
				
				//判断是否需要保存信息
				if (checked) {
					
					//判断是否有成功保存信息
					//Util.SaveInfo(user,pwd)为自定义函数,使用方法见下文
					boolean saveinfo = Util.SaveInfo(user,pwd);
					if (saveinfo) {
						
						Toast.makeText(MainActivity.this, "用户信息保存成功", Toast.LENGTH_LONG).show();
					
					}else {
						
						Toast.makeText(MainActivity.this, "用户信息保存失败", Toast.LENGTH_LONG).show();
					}
					//打印
					Log.d("MainActivity", "保存用户名:"+user+"密码:"+pwd);	
					
				}
				//执行登陆的业务逻辑
				Log.d("MianActivity", "开始登陆。。。");
			
			}
			
		}
		
	}
 
  

Utils.SaveInfo(user,pwd)使用说明:因函数为自定义函数需自己添加类,方法如下:将鼠标移动到红线处,或选择Utils函数同时按“Ctrl+1”出现如图窗口,选择“Create class “Ultils””项回车,如图1

android登陆界面保存账号密码附带源码_第1张图片

图1

按图2操作,创建类

android登陆界面保存账号密码附带源码_第2张图片

图2

同理,为SaveInfo添加类方法。结果如下图android登陆界面保存账号密码附带源码_第3张图片

图3

Utils.SaveInfo类方法代码为:

package com.example.day20170107_1.Util;

import java.io.File;
import java.io.FileOutputStream;
import java.lang.reflect.Field;

import android.R.string;

public class Util {
/********************************************
 *功能:保存用户账号密码
 *********************************************/
	public static boolean SaveInfo(String user, String pwd) {
		
		// TODO Auto-generated method stub
		//保存方式
		String info = user + "##" +pwd;
		//保存信息位置并以txt文件方式
		File file = new File("data/data/com.example.day20170107_1/info.txt");
		try {
			
			//将用户信息写入info.txt文件
			FileOutputStream fis = new FileOutputStream(file);
			fis.write(info.getBytes());
			return true;		 
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return false;
		}
		
	}


}

调试运行可得,且在模拟器或手机的资源管理器data/data/com.example.day20170107_1/路径下可查看info.txt文件(需拷贝到其他地方查看): android登陆界面保存账号密码附带源码_第4张图片

图4

4、重开软件自动显示账号密码:

 在界面初始化出添加如下代码:

public class MainActivity extends ActionBarActivity {

    private TextView username;
    private TextView password;
	private CheckBox checkBox;
	private Button btn_login;

	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //初始化界面
        setContentView(R.layout.activity_main);
        username = (TextView) findViewById(R.id.et_username);
        password = (TextView) findViewById(R.id.et_password);
        checkBox = (CheckBox) findViewById(R.id.cb_issave);
        btn_login = (Button) findViewById(R.id.btn_login);
        //添加点击事件
        btn_login.setOnClickListener(new MyonclickListener());
        
        //读取保存的信息
        //ReadInfo()类方法创建同saveInfo();
        String[] ReadInfo = Util.ReadInfo();
        //判断ReadInfo是否为空,如不为空,显示账号密码;
        if (ReadInfo != null) {
			
        	username.setText(ReadInfo[0]);
        	password.setText(ReadInfo[1]);
        	
		}
        
    }

 Util.ReadInfo();类方法代码:

/********************************************
	 *功能:读取账号密码
********************************************/
public static String[] ReadInfo() {
	// TODO Auto-generated method stub
	//获取保存文件
	File file = new File("data/data/com.example.day20170107_1/info.txt");
	//读取数据
	try {
		
		FileInputStream fis = new FileInputStream(file);
		 BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
		//切割函数
		String temp = reader.readLine();
		String[] result = temp.split("##");
		return result;
		
	} catch (Exception e) {
		// TODO: handle exception
		e.printStackTrace();
		return null;
	}
	
}


android登陆界面保存账号密码附带源码_第5张图片

图5

源码下载地址:点击打开链接




你可能感兴趣的:(应用程序)