通过SharedPreference的配置文件的键值对的存储方式保存用户名密码。
登录界面activity每次登录的时候都从配置文件中获取用户名和密码。
即,CheckBox勾选时,存入用户名密码,CheckBox不勾选,存入“”(空String对象)。
public class HelloActivity extends Activity {
private EditText et1,et2;
private CheckBox cb1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hello_activity);
cb1 = (CheckBox)findViewById(R.id.cb1);
et1 = (EditText)findViewById(R.id.et1);
et2 = (EditText)findViewById(R.id.et2);
//从配置文件中取用户名密码的键值对
//若第一运行,则取出的键值对为所设置的默认值
SharedPreferences settings = getSharedPreferences("SETTING_Infos", 0);
String strJudge = settings.getString("judgeText", "no");// 选中状态
String strUserName = settings.getString("userNameText", "");// 用户名
String strPassword = settings.getString("passwordText", "");// 密码
if(strJudge.equals("yes")){
cb1.setChecked(true);
et1.setText(strUserName);
et2.setText(strPassword);
}else{
cb1.setChecked(false);
et1.setText("");
et2.setText("");
}
//监听器
cb1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub
SharedPreferences settings = getSharedPreferences("SETTING_Infos", 0);
if(arg1 == true){//勾选时,存入EditText中的用户名密码
settings.edit().putString("judgeText", "yes")
.putString("userNameText", et1.getText().toString())
.putString("passwordText", et2.getText().toString())
.commit();
Toast.makeText(HelloActivity.this, "记住用户名和密码", Toast.LENGTH_SHORT)
.show();
}else{//不勾选,存入空String对象
settings.edit().putString("judgeText", "no")
.putString("UserNameText", "")
.putString("passwordText", "")
.commit();
Toast.makeText(HelloActivity.this, "不记住用户名和密码", Toast.LENGTH_SHORT)
.show();
}
}
});
}
}