Android实战教程第七篇之如何在内存中存储用户名和密码
程序员文章站
2024-03-01 13:29:34
本文实例为大家分享了android内存中存储用户名和密码的方法,供大家参考,具体内容如下
首先是配置文件:
本文实例为大家分享了android内存中存储用户名和密码的方法,供大家参考,具体内容如下
首先是配置文件:
<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: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" android:orientation="vertical" > <edittext android:id="@+id/et_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入用户名" /> <edittext android:id="@+id/et_pass" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputtype="textpassword" android:hint="请输入密码" /> <relativelayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <checkbox android:id="@+id/cb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="记住用户名和密码" android:layout_centervertical="true" /> <button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:text="登录" android:layout_alignparentright="true" android:onclick="login" /> </relativelayout> </linearlayout>
活动中的代码如下:
package com.itydl.rwinrom; import java.io.bufferedreader; import java.io.file; import java.io.fileinputstream; import java.io.filenotfoundexception; import java.io.fileoutputstream; import java.io.filereader; import java.io.inputstreamreader; import org.apache.http.entity.inputstreamentity; import android.os.bundle; import android.annotation.suppresslint; import android.app.activity; import android.view.menu; import android.view.view; import android.widget.checkbox; import android.widget.edittext; import android.widget.toast; public class mainactivity extends activity { private edittext et_name; private edittext et_pass; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); et_name = (edittext) findviewbyid(r.id.et_name); et_pass = (edittext) findviewbyid(r.id.et_pass); readaccount();//在oncreate中读取原因是,活动一创建就读取用户名和密码进行回显。 } public void readaccount(){ file file = new file("data/data/com.itydl.rwinrom/info.txt"); if(file.exists()){ try { // fileinputstream fis = new fileinputstream(file); // //把字节流转换成字符流 // bufferedreader br = new bufferedreader(new // inputstreamreader(fis)); bufferedreader br = new bufferedreader(new filereader(file)); //读取txt文件里的用户名和密码 string text = br.readline(); string[] s = text.split("##");//正则表达 et_name.settext(s[0]);//ctrl+1提取全局变量 et_pass.settext(s[1]); } catch (exception e) { // todo auto-generated catch block e.printstacktrace(); } } } public void login(view v){ string name = et_name.gettext().tostring(); string pass = et_pass.gettext().tostring(); checkbox cb = (checkbox) findviewbyid(r.id.cb); //判断选框是否被勾选 if(cb.ischecked()){ //data/data/com.itheima.rwinrom:这就是内部存储空间的路径 file file = new file("data/data/com.itydl.rwinrom/info.txt");//这个路径是安卓特有的文件夹 fileoutputstream fos; try { fos = new fileoutputstream(file); //勾选了复选框,会把用户名密码存入内部存储位置 fos.write((name + "##" + pass).getbytes()); fos.close(); } catch (exception e) { // todo auto-generated catch block e.printstacktrace(); } } //创建并显示吐司对话框 toast.maketext(this, "登录成功", 0).show(); } }
最后是截图:
当退出程序,再进入时,会发现用户名和密码都回显。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。