利用SharedPreferences完成記住賬號密碼的功能
阿新 • • 發佈:2017-08-27
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 importandroid.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完成記住賬號密碼的功能