Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 一個簡單的登陸窗口的實現(文件的保存與讀取)

Android 一個簡單的登陸窗口的實現(文件的保存與讀取)

編輯:關於Android編程

好久沒寫過代碼了,現在又開始重操舊業了。想了想,還是回到CSDN博客來吧,原本都是在Github上面自己弄

Pages寫的,但是還是挺捨不得CSDN的。在這裡繼續開寫吧,反正都是一些菜鳥的流水賬的東西。記錄Mark一下。

今天寫的是一個簡單的登陸界面,主要功能就是實現記住密碼這個簡單的功能,說白了就是在Android中實現文件

的保存與再次的讀取。

首先是布局文件,很簡單的線性布局。



    

    

    

    

    

        

        


然後就是主要的代碼了,為了簡單幾乎都寫到一起了,雖然很不規范,但是基礎學習嘛,暫且這樣了


package com.bird.login;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

	private EditText username;
	private EditText password;
	private CheckBox cb;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		username = (EditText) findViewById(R.id.et_username);
		password = (EditText) findViewById(R.id.et_password);
		cb = (CheckBox) findViewById(R.id.check_box);
		
		//檢查是否有保存的數據
		Map map = getSavedInfo(this);
		if(map!=null){
			username.setText(map.get("username"));
			password.setText(map.get("password"));
		}
	}

	// 登陸的點擊事件
	public void loginIn(View view) {
		String user = username.getText().toString().trim();
		String pass = password.getText().toString().trim();
		if (TextUtils.isEmpty(user) || TextUtils.isEmpty(pass)) {
			Toast.makeText(this, "用戶名或者密碼不能為空", Toast.LENGTH_SHORT).show();
			return;
		}
		//判斷是否保存用戶名密碼
		if(cb.isChecked()){
			//保存用戶名密碼
			boolean result = saveUserInfo(this,user,pass);
			if(result){
				 Toast.makeText(this, "保存數據成功", Toast.LENGTH_LONG);
			}else{
				Toast.makeText(this, "數據保存失敗", Toast.LENGTH_LONG);
			}
			
			
		}
		
		//登陸
		if("admin".equals(user)&&"admin".equals(pass)){
			Toast.makeText(this, "登陸成功", Toast.LENGTH_LONG).show();
		}else{
			Toast.makeText(this, "用戶名或者密碼錯誤", Toast.LENGTH_LONG).show();
		}
	}
	
	public boolean saveUserInfo(Context context, String username,String password){
		/**
		 * context is a 上下文類,保存應用的上線問信息包括安裝的目錄等等東西 
		 */
		File file = new File(context.getCacheDir(),"info.txt");
		try {
			FileOutputStream fos = new FileOutputStream(file);
			fos.write((username+"##"+password).getBytes());
			fos.close();
			return true;
		} catch (Exception e) {
			return false;
		}
	}
	
	
	public Map getSavedInfo(Context context){
		
		try {
			File file = new File(context.getCacheDir(),"info.txt");
			FileInputStream fis;
			fis = new FileInputStream(file);
			BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
			String str = reader.readLine();
			reader.close();
			String[] infos = str.split("##");
			Map map = new HashMap();
			map.put("username", infos[0]);
			map.put("password", infos[1]);
			
			return map;
		} catch (Exception e) {
			return null;
		}
		
	}

}


總體上代碼還是非常簡單的,有點復雜的地方都有注釋,應該是一看就可以明白了。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved