android数据存储案例,把数据存储到文件(login案例) android 下的数据存储

把数据存储到文件(login案例) android 下的数据存储

1.写布局

LinearLayout + RelativeLayout

2.写业务逻辑

a.找到相应控件

b.设置按钮的点击事件

c.在onclick方法中,获取用户输入的用户名密码和是否记住密码

d.判断用户名密码是否为空,不为空请求服务器(省略,默认请求成功)

e.判断是否记住密码,如果记住,将用户名密码保存本地。????

f.回显用户名密码 ??

//通过context对象获取私有目录,/data/data/packagename/filse

context.getFilesDir().getPath()

package xzit.com.logincase;

import android.content.Context;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.text.TextUtils;

import android.view.View;

import android.widget.Button;

import android.widget.CheckBox;

import android.widget.EditText;

import android.widget.Switch;

import android.widget.Toast;

import java.util.Map;

import xzit.com.logincase.util.UserInfoUtil;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private EditText et_username, et_password;

private CheckBox cb_rem;

private Button bt_login;

private Context mContext;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mContext=this;

//a.找到相应控件

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

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

cb_rem = (CheckBox) findViewById(R.id.cb_rem);

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

//b.设置按钮的点击事件

bt_login.setOnClickListener(this);

//f.回显用户名密码 ??

Map map = UserInfoUtil.getUserInfo(mContext);//获取用户名密码

if(map !=null){

String username=map.get("username");

String password=map.get("password");

System.out.println(username+password);

et_username.setText(username);//设置用户名

et_password.setText(password);

cb_rem.setChecked(true);

}

}

private void login() {

//c.在onclick方法中,获取用户输入的用户名密码和是否记住密码

String username=et_username.getText().toString().trim();//.trim();这个的意思是去掉空格

String password=et_password.getText().toString().trim();

boolean isrem=cb_rem.isChecked();

//d.判断用户名密码是否为空,不为空请求服务器(省略,默认请求成功)

if(TextUtils.isEmpty(username)||TextUtils.isEmpty(password)){

Toast.makeText(mContext,"用户名密码不能为空",Toast.LENGTH_SHORT).show();

return ;//因为没有必要往下走了,所以要return一下

}

//请求服务器。

//e.判断是否记住密码,如果记住,将用户名密码保存本地。????

if(isrem){

boolean result= UserInfoUtil.saveUserInfo(mContext,username, password);

if(result){

Toast.makeText(mContext,"用户名密码保存成功",Toast.LENGTH_SHORT).show();

}else{

Toast.makeText(mContext,"用户名密码保存失败",Toast.LENGTH_SHORT).show();

}

}else{

Toast.makeText(mContext,"无需保存",Toast.LENGTH_SHORT).show();

}

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.bt_login:

login();

break;

default:

break;

}

}

}

package xzit.com.logincase.util;

import android.content.Context;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.HashMap;

import java.util.Map;

/**

* Created by Administrator on 2016/6/6.

*/

public class UserInfoUtil {

public static boolean saveUserInfo(Context context,String username, String password) {

//保存用户名和密码

//要保存在文件里面,因为如果保存在内存里面,有可能被清除掉了

//文件保存的路径

try {

String userInfo=username+"##"+password;//封装用户名,密码

//通过Context对象获取私有目录的一个路径

String path=context.getFilesDir().getPath();//指定保存的路径

System.out.println("..............."+path);

File file = new File(path, "userInfo.txt");//创建file

//往文件里面写东西就用FileOutputStream

FileOutputStream fileOutputStream = new FileOutputStream(file);//创建文件写入流

fileOutputStream.write(userInfo.getBytes());//最后将用户名,密码写入文件

fileOutputStream.close();

return true;

} catch (IOException e) {

e.printStackTrace();

}

return false;

}

//获取用户名,密码

public static Map getUserInfo(Context context){

try{

String path=context.getFilesDir().getPath();

File file = new File(path, "userInfo.txt");

FileInputStream fileInputStream = new FileInputStream(file);

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));

String readLine = bufferedReader.readLine();//读取一行

String[] split = readLine.split("##");

HashMap hashMap = new HashMap();

hashMap.put("username",split[0]);

hashMap.put("password",split[1]);

bufferedReader.close();

fileInputStream.close();

return hashMap();

}catch (Exception e){

e.printStackTrace();

}

return null;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值