效果图:

利用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 }
代码逻辑部分

相关文章: