Android实战教程第七篇之如何在内存中存储用户名和密码
作者:杨道龙 发布时间:2021-07-15 15:43:14
标签: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();
}
}
最后是截图:
当退出程序,再进入时,会发现用户名和密码都回显。
来源:http://blog.csdn.net/qq_32059827/article/details/51873154


猜你喜欢
- JAVA中反射机制(JavaBean的内省与BeanUtils库)内省(Introspector) 是Java 语言对JavaBean类属性
- pageHelper是一个非常方便实用的 Java 分页插件,可以轻松实现数据库分页查询。而在一对多的情况下,如果要实现主表和从表的联合分页
- 介绍Mybatis Generator(MBG)是Mybatis的一个代码生成工具。MBG解决了对数据库操作有最大影响的一些CRUD操作,很
- 本文实例为大家分享了Android颜色渐变动画效果的实现代码,供大家参考,具体内容如下前言案例效果的实现比较简单,利用Android自带的颜
- 用户列表页面开发项目介绍用户列表页面开发,可以实现简单的查询,删除,修改,和添加用户信息功能。前端使用vue框架,后端使用springboo
- 本文实例讲述了Java实现的双向匹配分词算法。分享给大家供大家参考,具体如下:目前比较流行的几大分词算法有:基于字符串匹配的分词方法、基于理
- 关于Android的webview,用过的想必都不会陌生。这里我就不说webview的基本用法了,想要知道的可以去网上百多,有很多介绍web
- Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*
- 终日惶惶,不知归路;一日写起代码,突发奇想,若是在运行时发现自定义上下文的数据丢失,我们该如何解决处理数据丢失的问题?问题复现一下,大家看下
- 如果我们的程序是在单线程下运行,或者是不必考虑到线程同步问题,我们应该优先使用StringBuilder类;如果要保证线程安全,自然是Str
- 话不多说,请看代码/// <summary>/// 删除字符串中的中文/// </summary>public st
- 前言尽管可以通过不同的方式组合IO流类,但我们可能也就只用到其中的几种组合。下面的例子可以作为典型的IO用法的基本参考。在这些示例中,异常处
- 一、国际惯例,先看下效果图二、不跟你多bb直接上布局文件代码<?xml version="1.0" encodin
- Android 中 Tweened animation的实例详解Tweened animation有四种类型,下面主要介绍Scale类型。运
- 约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知 n 个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。. 从编号为 k 的人开始
- 网上有很多的OkHttp的教程,但是并没有一个是关于如何OkHttp处理重定向的。这里的处理重定向的意思是:把重定向请求拦截下来,然后我们自
- 此处网上最多的做法是需要修改tomcat的参数配置大致如下:<Connector port="8080" prot
- webflux过滤器(RouterFunction实现)相关类与接口HandlerFiterFunction@FunctionalInter
- 1 需求描述我们现在要干一个什么事情呢,我们要在浏览器输入一个请求地址,然后我们的后端就给我返回一个User对象即可,并且我希望以Json的
- Android镂空字体的实现效果图,感兴趣的朋友可以参考实现代码。效果图:记录一下...自定义TextViewpublic class Ho