• 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();
        }
        
    }
    

    最后是截图:


    当退出程序,再进入时,会发现用户名和密码都回显。

  • 相关阅读:
    致命错误 RC1004: 文件查找结束时有无法预知的错误(vc++)
    demo713总结
    图标,鼠标,字符串,音频..
    不同的色深条件(8、16、24、32),像素绘制方式
    SQL 保留两位小数的实现方式
    MVC4的REmote缺陷
    MVC4安装过程
    mongodb 的几种驱动
    iis7 web配置问题及解决办法
    Fast Binary File Reading with C#
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299640.html
Copyright © 2020-2023  润新知