主要功能SharedPreferences介绍,其是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出。
//用户名
//密码
//登录事件
aminiTwitter
Settings
Hello world!
账号:
Email或手机号
密码:
登陆
没有账号?注册
记住密码
自动登录
登录成功!
点击返回
MainActivity
注意: 册上可以写连接的地址。
background_login_div_bg.xml:
background_login.xml:
package cn.edu.bzu.aminitwitter;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private CheckBox cbJiYi;
private CheckBox cbZiDongDengLu;
private EditText etName,etPassword;
private SharedPreferences sharedPreferences;
private Button btnClick;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
findById();
//设置默认记住密码的状态
if(sharedPreferences.getBoolean("cbJiYi", true)){
cbJiYi.setChecked(true);
etName.setText(sharedPreferences.getString("etName", ""));
etPassword.setText(sharedPreferences.getString("etPassword", ""));
}
//判断自动登陆多选框的状态
if(sharedPreferences.getBoolean("cbcbZiDongDengLu", false)){
//设置默认自动登陆的状态
cbZiDongDengLu.setChecked(true);
//跳转界面
Intent intent = new Intent(MainActivity.this,ShowActivity.class);
startActivity(intent);
}
//监听自动登陆多选框事件
cbZiDongDengLu.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(cbZiDongDengLu.isChecked()){
//勾选事件
cbJiYi.setChecked(true);
sharedPreferences.edit().putBoolean("cbZiDongDengLu", true).commit();
}else{
sharedPreferences.edit().putBoolean("cbZiDongDengLu", false).commit();
}
}
});
}
private void findById() {
// TODO Auto-generated method stub
cbJiYi=(CheckBox) findViewById(R.id.cbJiYi);
cbZiDongDengLu=(CheckBox) findViewById(R.id.cbZiDongDengLu);
etName=(EditText) findViewById(R.id.etName);
etPassword=(EditText) findViewById(R.id.etPassword);
btnClick=(Button) findViewById(R.id.btnName);
//创建shareaPreferences对象用来存、取数据,文件名userInfo;
sharedPreferences=this.getSharedPreferences("userInfo", Context.MODE_PRIVATE);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void btnClick(View view){
if(etName.getText().toString().equals("abc") && etPassword.getText().toString().equals("aaa")){
//如果选中记住密码
if(cbJiYi.isChecked()){
// sharedPreferences.edit().putBoolean("ISCHECK", true).commit();
//存入
Editor editor=sharedPreferences.edit();
editor.putString("etName", etName.getText().toString());
editor.putString("etPassword", etPassword.getText().toString());
editor.commit();
//取出
String etName=sharedPreferences.getString("etName", "");
String etPassword=sharedPreferences.getString("etPassword", "");
Log.d("MainActivity", "etName="+etName+"\netPassword="+etPassword+"\n");
Toast.makeText(MainActivity.this, "记住用户名和密码", Toast.LENGTH_LONG).show();
}else {
//如果没选中记住密码
Toast.makeText(this, "没有记住用户名和密码", Toast.LENGTH_LONG).show();
etName.setText("");
etPassword.setText("");
// sharedPreferences.edit().putBoolean("ISCHECK", false).commit();
}
Intent intent=new Intent(MainActivity.this, ShowActivity.class);
startActivity(intent);
//finish();
if(cbJiYi.isChecked() && cbZiDongDengLu.isChecked()){
startActivity(intent);
//finish();
}
}else{
Toast.makeText(MainActivity.this, "登录失败!", Toast.LENGTH_LONG).show();
}
}
}
//返回
package cn.edu.bzu.aminitwitter;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
public class ShowActivity extends Activity {
private Button btnBack;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//去除标题
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_show);
btnBack=(Button) findViewById(R.id.btnBack);
btnBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
//返回
finish();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.show, menu);
return true;
}
}
public class LoginActivity extends Activity {
private EditText etUser,etPassword;//定义用户名和密码
private CheckBox cbRemember;//定义记住密码
private Button btnLogin;//登录按钮
private SharedPreferences mSpSettings=null;//声明一个sharedPreferences用于保存数据
private static final String PREPS_NAME="NamePwd";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
setTitle("登录界面");
findById();//获取控件
setListener();//绑定事件
getData();
}
private void setListener() {
btnLogin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if(etUser.getText().toString().equals("zsh")&&etPassword.getText().toString().equals("123")){
//判断是否记住密码,复选框是否选中
if(cbRemember.isChecked()){
mSpSettings=getSharedPreferences(PREPS_NAME, MODE_PRIVATE);
Editor edit=mSpSettings.edit();//得到Editor对象
edit.putBoolean("isKeep", true);//记录保存标记
edit.putString("username", etUser.getText().toString());//记录用户名
edit.putString("password", etPassword.getText().toString());//记录密码
edit.commit();//**提交
}else {
mSpSettings=getSharedPreferences(PREPS_NAME, MODE_PRIVATE);
Editor edit=mSpSettings.edit();
edit.putBoolean("isKeep", true);//保存的文件名isKeep
edit.putString("username", "");
edit.putString("password", "");
edit.commit();
}
//跳转
Intent intent=new Intent(LoginActivity.this, LoginShowActivity.class);
startActivity(intent);
}else{
Toast.makeText(LoginActivity.this, "密码或者用户名错误", Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
protected void onResume() {
super.onResume();
getData();//在界面显示数据之前得到之前存储的数据
}
private void getData() {
mSpSettings=getSharedPreferences(PREPS_NAME, MODE_PRIVATE);
if(mSpSettings.getBoolean("isKeep", false)){
//如果之前存储过,则显示在相应文本框内
etUser.setText(mSpSettings.getString("username", ""));
etPassword.setText(mSpSettings.getString("password", ""));
}else{//否则显示为空
etUser.setText("");
etPassword.setText("");
}
}
private void findById() {
etUser=(EditText) findViewById(R.id.etUser);
etPassword=(EditText) findViewById(R.id.etPassword);
cbRemember=(CheckBox) findViewById(R.id.cbRemember);
btnLogin=(Button) findViewById(R.id.btnLogin);
}
}