SharedPreferences 是一个轻量级存储类,经常用于保存配置参数等信息,它其实是用xml来存放数据。文件存放在/data/data/
要实现用户登录信息的保存,首先在用户第一次登录时,我们将用户登录信息保存到SharedPreferences中。下次登录时,首先从SharedPreferences中取出用户名和密码,然后用该用户名和密码直接登录,不需要用户再次输入。
1 程序启动时,首先从SharedPreferences中取出username和password,如果不为空,则判断不是第一次登录,直接利用SharedPreferences的用户信息进行登录。代码如下:
SharedPreferences preferences = getSharedPreferences("userInfo",
Activity.MODE_PRIVATE);
String username = preferences.getString("username", "");
String password = preferences.getString("password", "");
//如果不是第一次登陆
if(username!=null && password!=null
&& !"".equals(username) && !"".equals(password))
login(username,password);
2 否则,判断为第一次登录,显示登录界面,获得用户输入的账号密码信息,再进行连接。代码如下:
String username = usernameEdit.getText().toString();
String password = passwordEdit.getText().toString();
login(username,password);
3 login方法使用HttpClient进行连接,在使用该用户名和密码连接成功后需要将用户登录的信息存放到SharedPreferences中。代码如下:
//如果返回状态为200,获得返回的结果 if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
String str = EntityUtils.toString(response.getEntity());
if(str.trim().equals("success")){//用户登录成功
Toast.makeText(GossipActivity.this, "登陆成功!", Toast.LENGTH_SHORT).
show();
//保存用户登录信息
SharedPreferences sharedPreferences = getSharedPreferences("userInfo", Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();//获取编辑器
editor.putString("username", username);
editor.putString("password", password);
editor.commit();//提交修改
}
}