把数据存储到文件(login案例) android 下的数据存储
来源:互联网 发布:echo回声mac版 编辑:程序博客网 时间:2024/06/15 08:51
把数据存储到文件(login案例) android 下的数据存储
1.写布局 LinearLayout + RelativeLayout2.写业务逻辑 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;@Overrideprotected 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<String, String> 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(); }}@Overridepublic 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<String,String> 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<String, String> hashMap = new HashMap<String, String>(); 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
- 把数据存储到文件(login案例) android 下的数据存储
- ASP-把数据存储到 XML 文件
- 把数据存储到 XML 文件
- Android存储数据到文件
- 数据存储-文件(文件的读取、把文件存储到SD卡中)
- Android——数据存储(Login)
- 文件存储的实现-login登录案例1-内置存储
- Android 数据存储--文件存储
- android 数据存储-文件存储
- 把XML文件中的数据存储到Oracle数据库
- Android下数据存储
- Android 复习 把数据存储到SD卡
- Android数据存储之文件存储数据
- Android的数据存储方式------文件存储数据
- android数据存储:数据持久化的文件存储
- 文件存储的实现-login登录案例2-sdcard
- 文件存储的实现-login登录案例3-SharedPreferences
- 存储pcm数据到文件
- PAT L1-003. 个位数统计
- Android——自定义AlertDialog并与Activity进行数据通信
- 如何给Label加背景图片
- search maven-mvan对外API查询
- leetcode:290. Word Pattern
- 把数据存储到文件(login案例) android 下的数据存储
- Android中AlterDialog四种实现样式
- 关于 变量的范围
- h.264语法结构分析
- android 根据Item数设定ListView高度
- 阅读程序(2)
- POJ2188
- *1
- HDU 1005 Number Sequence