記住密碼(Android登入介面)

來源:互聯網
上載者:User

標籤:android   layout   

在編寫安卓登入介面時,我們如何記住密碼,方便下一次登入呢?

首先,先建立一個安卓項目(我的版本是4.4.2的),名字為"記住密碼"

然後在res檔案夾下找到layout檔案夾,找到activity_main.xml或fragment_main.xml,在裡面輸入或拖拽按鈕

<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"    tools:context="com.csdn.www.MainActivity" >    <TextView        android:id="@+id/textView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="使用者名稱" />    <EditText        android:id="@+id/username"        android:layout_width="fill_parent"        android:layout_height="wrap_content" />    <TextView        android:id="@+id/textView2"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="密碼" />    <EditText        android:id="@+id/userpass"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:inputType="textPassword"        android:password="true" />    <RelativeLayout        android:layout_width="fill_parent"        android:layout_height="wrap_content" >        <Button            android:id="@+id/login"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_alignParentRight="true"            android:layout_alignParentTop="true"            android:layout_marginRight="73dp"            android:text="登陸" />        <CheckBox            android:id="@+id/checkBox1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"                       android:layout_alignParentLeft="true"            android:checked="true"            android:text="記住密碼" />    </RelativeLayout></LinearLayout>

視圖效果:

在src下的java檔案裡建立一個SaveFile.java類,旨在記住密碼之後如何儲存使用者名稱、密碼和擷取儲存資料

package com.csdn.www;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.util.HashMap;import java.util.Map;import android.content.Context;public class SaveFile {public static boolean save(Context context,String name,String pass){try {//File f=new File("/data/data/com/csdn/www/info.txt");File f=new File(context.getFilesDir(),"info.txt");//context.getFilesDir();//返回一個目錄  /data/data/包名/filesFileOutputStream fos=new FileOutputStream(f);fos.write((name+"=="+pass).getBytes());fos.close();return true;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();return false;}}/** * 擷取儲存的資料 * @param context * @return */public static Map<String,String> getSaveFiles(Context context){File f=new File(context.getFilesDir(),"info.txt");try {FileInputStream fis=new FileInputStream(f);BufferedReader br=new BufferedReader(new InputStreamReader(fis));String str=br.readLine();String[] infos=str.split("==");Map<String,String> map=new HashMap<String,String>();map.put("username", infos[0]);map.put("userpass", infos[1]);return map;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();return null;}}}

最後在src下的java檔案裡MainActivity.java

package com.csdn.www;import java.util.Map;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.text.TextUtils;import android.util.Log;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends ActionBarActivity {private static final String TAG = "MainActivity";private EditText username, userpass;private CheckBox checkBox1;private Button login;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.fragment_main);username = (EditText) this.findViewById(R.id.username);userpass = (EditText) this.findViewById(R.id.userpass);checkBox1 = (CheckBox) this.findViewById(R.id.checkBox1);Map<String, String> map=SaveFile.getSaveFiles(this);if(map!=null){username.setText(map.get("username"));userpass.setText(map.get("userpass"));}login = (Button) findViewById(R.id.login);login.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String un = username.getText().toString().trim();String up = userpass.getText().toString().trim();if (TextUtils.isEmpty(un) || TextUtils.isEmpty(up)) {Toast.makeText(MainActivity.this, "使用者名稱或密碼不可為空",Toast.LENGTH_SHORT).show();} else {// 登陸//是否儲存密碼if (checkBox1.isChecked()) {// 儲存使用者名稱和密碼Log.i(TAG, "需要儲存使用者名稱密碼");boolean flag=SaveFile.save(MainActivity.this,un, up);if(flag){Toast.makeText(MainActivity.this, "資訊儲存成功", 0).show();}}// 登陸發送訊息到伺服器,伺服器驗證是否正確if ("zhangsan".equals(un) && "123".equals(up)) {Toast.makeText(MainActivity.this, "登陸成功",Toast.LENGTH_SHORT).show();} else {Toast.makeText(MainActivity.this, "使用者名稱或密碼錯誤",Toast.LENGTH_SHORT).show();}}}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}


會顯示“資訊儲存成功”,“使用者名稱或密碼錯誤”

在Eclipse中的”File Explorer“裡,目錄”data/data/com/csdn/www/info.txt“,使用者名稱和密碼會儲存在info.txt裡


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.