您的位置:首页 > 移动开发 > Android开发

Android开发基础,保存用户输入的用户名和密码

2017-11-09 17:26 513 查看

activity_main.xml布局文件(2017-11-9)

<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_pwd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入密码"
/>
<CheckBox
android:id="@+id/cb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="保存用户名和密码"

/>
<Button
android:id="@+id/bt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登录"
android:onClick="click"
/>

</LinearLayout>



MainActivity.java文件

/*2017-11-9
* 功能:保存用户输入的用户名和密码,读取sd*/
package com.day11_9;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;

import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//在activitie创建时读取用户保存的密码
EditText et_name=(EditText) findViewById(R.id.et_name);
EditText et_pwd=(EditText) findViewById(R.id.et_pwd);
//CheckBox cb=(CheckBox) findViewById(R.id.cb);
//获得用户保存的文件内容
//File file=new File(getCacheDir().getAbsolutePath()+"/info.txt");
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
//创建文件对象
File file=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/info.txt");
if(file.exists()){
//开始读取
String temp=readInner(file);
if(temp!=null&&!("".equals(temp))){
//进行字符串的分割
String []temps=temp.split("@@");
et_name.setText(temps[0]);
et_pwd.setText(temps[1]);
}
}
}

}
/**
* <uses-permission
* android:name="android.permission.READ_EXTERNAL_STORAGE"/>

* @param file
* @return
*/
public String reradInSD(File file){
String temp=null;
try {
//创建文件输入流
FileInputStream fis=new FileInputStream(file);
//将字节流转换为字符流
BufferedReader br=new
BufferedReader(new InputStreamReader(fi
8dde
s));
//读取一行
temp=br.readLine();
} catch
(Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return temp;
}
/**
* 从内存中读取用户保存的用户名和密码
* @param file
* @return
*/
public String readInner(File file){
String temp=null;
try {
//创建文件输入流
FileInputStream fis=new FileInputStream(file);
//将字节流转换为字符流
BufferedReader br=new
BufferedReader(new InputStreamReader(fis));
//读取一行
temp=br.readLine();
} catch
(Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return temp;
}

/**
* 根据用户的选择将用户名和密码保存到info.txt文件中
* @param v
*/
public void click(View v){
EditText et_name=(EditText) findViewById(R.id.et_name);
EditText et_pwd=(EditText) findViewById(R.id.et_pwd);
CheckBox cb=(CheckBox) findViewById(R.id.cb);
String name=et_name.getText().toString();
String pwd=et_pwd.getText().toString();
//根据用户的选择进行判断,是否勾选

if(cb.isChecked()){

//调用写入内存的方法
//生成一个文件对象
//获得文件保存的路径,data/data/day119/files
//String path=getFilesDir().getAbsolutePath()+"/info.txt";
//获得文件保存的路径,data/data/day119/cache
String path=getCacheDir().getAbsolutePath()+"/info.txt";
System.out.println(path);
File file=new File(path);
//writeInInner(name+"@@"+pwd, file);
//调用写入sd的方法
writeInSD(name+"@@"+pwd);
}

}
/**
* 向内存中的文件进行写入
*
* @param data
*/
public void writeInInner(String data,File file){
//if(file.exists()){
//判断文件是否存在
//1.获得输出流
try {
FileOutputStream fos=new FileOutputStream(file);
//将data写入文件
fos.write(data.getBytes());
//关闭流
System.out.println("===========================");
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// }

}
/**
*  <uses-permission android:
*  name="android.permission.WRITE_EXTERNAL_STORAGE"/>

* @param data
*/
public void writeInSD(String data){
//1.判断sdCard的状态
//获得SDCard的真实路径
String sdPath= Environment.getExternalStorageDirectory().
getAbsolutePath();
//再判断sd的状态,只有当sd的状态为MEDIA_MOUNTED才表示
//sd卡已经准备好
if( Environment.getExternalStorageState().
equals(Environment.MEDIA_MOUNTED)){
//创建文件对象
File file=new File(sdPath+"/info.txt");
//获得输出流
try {
FileOutputStream fos=new FileOutputStream(file);
fos.write(data.getBytes());
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐