SharedPreferences 保存多个用户信息 并默认显示第一条用户信息
来源:互联网 发布:淘宝客服兼职是真的吗 编辑:程序博客网 时间:2024/04/27 21:09
运用安卓写登录时,有时需要记录用户的登录信息,通常采用SharedPreferences 保存,这里记录了保存多个用户信息的方法,之前参考了网上的资料,但是发现错误较多且不够详细(也许是我太笨不理解吧),话不多说,直接贴代码。
public void saveUserInXML(String name,String pasworrd){ //保存用户信息
checkUser(name, pasworrd);
String members = ""; //保存在xml中的用户信息字符串
for(Member user:listMembers){
String mName = user.getName();
String mpassword = user.getPassword();
String users = mName+"/"+mpassword+",";
if(users == ""){
members = users;
}else{
members += users;
}
}
Editor editer = sp.edit();
editer.putString("members", members);
editer.commit();
}
public List<Member> getListUsers(){ //获取SharedPreferences中的用户列表信息
List<Member> listMembers =new ArrayList<Member>(); //用于保存用户信息
String members = sp.getString("members", "");
if(members != ""){ //有用户信息
if(members.contains(",")){ //有,代表不止一个用户
String[] users = members.split(",");
for(String str : users){
Member m = new Member();
String[] user = str.split("/");
m.setName(user[0]); //用户名
m.setPassword(user[1]); //密码
listMembers.add(m);
}
}else{ //只有一个用户
Member m = new Member();
String[] user = members.split("/");
m.setName(user[0]); //用户名
m.setPassword(user[1]); //密码
listMembers.add(m);
}
return listMembers;
}else{
return null;
}
}
public void checkUser(String mName,String mPassword){ //检查用户是否存在 没有就保存到listMembers
int position = -1;
if(listMembers != null){
for(int i=0;i<listMembers.size();i++){
if(listMembers.get(i).getName().equals(mName)){
position = i;
break;
}
}
if(position>=0){ //存在这个用户
listMembers.remove(position); //删除这个人
}
}else{
listMembers = new ArrayList<Member>();
}
Member m = new Member();
m.setName(mName);
m.setPassword(mPassword);
listMembers.add(m);
}
以上三个方法是主要的记录多条信息的,具体代码去我的资源里下载 这里贴一下服务器端与客户端交互的方法
客户端
class AT extends AsyncTask{
String reuslt = "";
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
pd.show();
}
@Override
protected Object doInBackground(Object... params) {
// TODO Auto-generated method stub
String username = "";
String password = "";
username = et_username.getText().toString();
password = et_password.getText().toString();
Log.d("username+111111111", username+"++"+password);
if(!username.equals("")&&!password.equals("")){
// HttpPost httpRequest = new HttpPost(UriAPI.HTTPCustomer);
List<BasicNameValuePair> paramsList = new ArrayList<BasicNameValuePair>();
paramsList.add(new BasicNameValuePair("USERNAME", username));
paramsList.add(new BasicNameValuePair("PASSWORD", password));
try {
httpRequest.setEntity(new UrlEncodedFormEntity(paramsList,HTTP.UTF_8));
HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);
if (httpResponse.getStatusLine().getStatusCode()==200) {
//利用字节数组流和包装的绑定数据
byte[] data =new byte[2048];
//先把从服务端来的数据转化成字节数组
data =EntityUtils. toByteArray((HttpEntity)httpResponse.getEntity());
//再创建字节数组输入流对象
ByteArrayInputStream bais = new ByteArrayInputStream(data);
//绑定字节流和数据包装流
DataInputStream dis = new DataInputStream(bais);
//将字节数组中的数据还原成原来的各种数据类型,代码如下:
reuslt=new String(dis.readUTF());
Log.i("服务器返回信息:", reuslt);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return reuslt;
}
@Override
protected void onPostExecute(Object result) {
// TODO Auto-generated method stub
pd.cancel();
if(reuslt.equals("")){
reLoad();
}else{
String name = et_username.getText().toString();
String password = et_password.getText().toString();
saveUserInXML(name, password); //保存用户信息到xml文件
Intent i = new Intent(LoginActivity.this, LoginSuccessActivity.class);
i.putExtra("ResultInfo", reuslt);
startActivity(i);
}
}
}
客户端:
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("=======连接服务器成功=====");
req.setCharacterEncoding("utf-8");
String username = req.getParameter("USERNAME");
String password = req.getParameter("PASSWORD");
System.out.println(username+" "+password);
HttpSession session = req.getSession(true);
session.setAttribute("SessionID", username); //用户名用作sessionID
System.out.println("SessionID===="+session.getAttribute("SessionID"));
DataOutputStream out = new DataOutputStream(resp.getOutputStream());
out.writeUTF("Success");
out.close();
}
- SharedPreferences 保存多个用户信息 并默认显示第一条用户信息
- 用SharedPreferences保存用户信息
- SharedPreferences保存用户信息
- 关于SharedPreferences存储多个用户信息或游戏用户信息
- servlet实现自动登录,并显示保存的用户信息
- 利用SharedPreferences实现登录用户信息保存
- 利用SharedPreferences实现登录用户信息保存
- 用户信息
- 用户信息
- 用户信息
- 用Session保存用户信息
- jquery保存用户信息cookie
- 关于用户信息本地保存
- 将用户信息保存本地
- 利用sharedPreference保存用户信息
- IOS - 用户信息默认界面
- 利用ajax实现登录:验证完用户信息后如何保存用户信息并实现跳转
- 使用SharedPreferences存储android用户信息
- SSH框架的用户登录小实例
- Android自定义View的实现方法,带你一步步深入了解View(四)
- Ruby on Rails总结(五)
- oled屏选型资料2
- NYOJ 96 n-1位数
- SharedPreferences 保存多个用户信息 并默认显示第一条用户信息
- 内核驱动常用头文件之--linux/module.h
- SOA 的基本概念及设计原则浅议
- 暗时间
- Python学习笔记(五)----Python 运算符
- POJ 3253 Fence Repair (哈夫曼树)Haffman-tree
- logstash日志平台搭建
- jQuery简单图表peity.js
- sharp lm8v302液晶屏替代屏