Android 一个简单的登陆窗口的实现(文件的保存与读取)

               

好久没写过代码了,现在又开始重操旧业了。想了想,还是回到CSDN博客来吧,原本都是在Github上面自己弄

Pages写的,但是还是挺舍不得CSDN的。在这里继续开写吧,反正都是一些菜鸟的流水账的东西。记录Mark一下。

今天写的是一个简单的登陆界面,主要功能就是实现记住密码这个简单的功能,说白了就是在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:orientation="vertical"    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" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="please input username" />    <EditText        android:id="@+id/et_username"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:inputType="text" />    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="please input password" />    <EditText        android:id="@+id/et_password"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:inputType="textPassword" />    <RelativeLayout        android:layout_width="fill_parent"        android:layout_height="wrap_content" >        <CheckBox            android:id="@+id/check_box"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:checked="true"            android:text="记住密码" />        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_alignParentRight="true"            android:onClick="loginIn"            android:text="登陆" />    </RelativeLayout></LinearLayout>


然后就是主要的代码了,为了简单几乎都写到一起了,虽然很不规范,但是基础学习嘛,暂且这样了


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<String,String> 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<String,String> 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<String,String> map = new HashMap<String,String>();   map.put("username", infos[0]);   map.put("password", infos[1]);      return map;  } catch (Exception e) {   return null;  }   }}


总体上代码还是非常简单的,有点复杂的地方都有注释,应该是一看就可以明白了。

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值