微信扫一扫打赏支持

利用SharedPreferences完成记住账号密码的功能

利用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>
界面设计部分

 

posted @ 2017-08-27 09:04  范仁义  阅读(860)  评论(0编辑  收藏  举报