1. 程式人生 > >利用SharedPreferences完成記住賬號密碼的功能

利用SharedPreferences完成記住賬號密碼的功能

reat btn length .sh logs his amp 點擊 效果

利用SharedPreferences完成記住賬號密碼的功能

效果圖:

技術分享技術分享

記住密碼後,再次登錄就會出現賬號密碼,否則沒有。

分析:

SharedPreferences可將數據存儲到本地的配置文件中

SharedPreferences會記錄CheckBox的狀態,如果CheckBox被選,則將配置文件中記錄的賬號密碼信息回饋給賬號密碼控件,否則清空。

SharedPreferences使用方法:

1、創建名為config的配置文件,並且私有

private SharedPreferences config;

config=getSharedPreferences("config", MODE_PRIVATE);

2、添加編輯器

Editor edit=config.edit();

3、向內存中寫入數據

String username=et_username.getText().toString();
String password=et_password.getText().toString();

edit.putString("username", username).putString("password", password);

4、提交到本地

edit.commit();

代碼:

fry.Activity01

技術分享
 1 package fry;
 2 
 3 import com.example.rememberUserAndPassword.R;
4 5 import android.app.Activity; 6 import android.content.SharedPreferences; 7 import android.content.SharedPreferences.Editor; 8 import android.os.Bundle; 9 import android.view.View; 10 import android.widget.Button; 11 import android.widget.CheckBox; 12 import android.widget.TextView; 13 import
android.widget.Toast; 14 15 public class Activity01 extends Activity{ 16 private Button btn_login; 17 private TextView et_username; 18 private TextView et_password; 19 private CheckBox cb_choose; 20 private SharedPreferences config; 21 22 23 @Override 24 protected void onCreate(Bundle savedInstanceState) { 25 // TODO Auto-generated method stub 26 super.onCreate(savedInstanceState); 27 setContentView(R.layout.activity01); 28 config=getSharedPreferences("config", MODE_PRIVATE); 29 btn_login=(Button) findViewById(R.id.btn_login); 30 et_username=(TextView) findViewById(R.id.et_username); 31 et_password=(TextView) findViewById(R.id.et_password); 32 cb_choose=(CheckBox) findViewById(R.id.cb_choose); 33 34 //是否記住了密碼,初始化為false 35 boolean isCheck=config.getBoolean("isCheck", false); 36 //Toast.makeText(this, isCheck+" ", Toast.LENGTH_SHORT).show(); 37 if(isCheck){ 38 et_username.setText(config.getString("username", "")); 39 et_password.setText(config.getString("password", "")); 40 cb_choose.setChecked(isCheck); 41 } 42 43 } 44 //權限要是public,要不然訪問不到 45 //因為在button控件中設置了android:onClick="onClick" 46 public void onClick(View view){ 47 Toast.makeText(this, "登錄成功", Toast.LENGTH_SHORT).show(); 48 Editor edit=config.edit(); 49 String username=et_username.getText().toString(); 50 String password=et_password.getText().toString(); 51 boolean isCheck=cb_choose.isChecked(); 52 //Toast.makeText(this, isCheck+" ", Toast.LENGTH_SHORT).show(); 53 //存儲CheckBox的狀態 54 edit.putBoolean("isCheck", isCheck); 55 if(isCheck){ 56 edit.putString("username", username).putString("password", password); 57 }else{ 58 edit.remove("username").remove("password"); 59 } 60 //提交到本地 61 edit.commit(); 62 } 63 }
代碼邏輯部分

/記住賬號和密碼/res/layout/activity01.xml

技術分享
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6 
 7     <EditText 
 8         android:id="@+id/et_username"
 9         android:layout_width="match_parent"
10         android:layout_height="wrap_content"
11         />
12 
13     <EditText
14         android:id="@+id/et_password"
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content"
17         android:ems="10" >
18 
19         <requestFocus />
20     </EditText>
21 
22     <LinearLayout 
23         android:layout_width="wrap_content"
24         android:layout_height="wrap_content"
25         >
26         <CheckBox 
27                 android:id="@+id/cb_choose"
28             android:layout_width="wrap_content"
29             android:layout_height="wrap_content"
30             />
31         <TextView 
32             android:layout_width="wrap_content"
33             android:layout_height="wrap_content"
34             android:text="記住密碼"
35             />
36     
37     </LinearLayout>
38     <!-- android:onClick="onClick" 點擊時去class中調用onClick方法,權限要為public -->
39     <Button
40         android:id="@+id/btn_login"
41         android:layout_width="wrap_content"
42         android:layout_height="wrap_content"
43         android:text="登錄"
44         android:layout_gravity="center_horizontal"
45         android:onClick="onClick"
46         />
47 </LinearLayout>
界面設計部分

利用SharedPreferences完成記住賬號密碼的功能