您的位置:首页 > 其它

判断用户是否已经登录

2017-02-28 21:05 351 查看

BaseActivity

public abstract class BaseActivity extends FragmentActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(getLayoutId());
ButterKnife.bind(this);

//将当前的activity添加到ActivityManager中
ActivityManager.getInstance().add(this);

initTitle();

initData();

}

protected abstract void initData();

protected abstract void initTitle();

protected abstract int getLayoutId();

public AsyncHttpClient client = new AsyncHttpClient();

//启动新的activity
public void goToActivity(Class Activity,Bundle bundle){
Intent intent = new Intent(this,Activity);
//携带数据
if(bundle != null && bundle.size() != 0){
intent.putExtra("data",bundle);
}

startActivity(intent);
}

//销毁当前的Activity
public void removeCurrentActivity(){
ActivityManager.getInstance().removeCurrent();
}

//销毁所有的activity
public void removeAll(){
ActivityManager.getInstance().removeAll();
}

//保存用户信息
public void saveUser(User user){
SharedPreferences sp = this.getSharedPreferences("user_info", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("name",user.getName());
editor.putString("imageurl",user.getImageurl());
editor.putBoolean("iscredit", user.isCredit());
editor.putString("phone",user.getPhone());
editor.commit();//必须提交,否则保存不成功
}

//读取用户信息
public User readUser(){
SharedPreferences sp = this.getSharedPreferences("user_info", Context.MODE_PRIVATE);
User user = new User();
user.setName(sp.getString("name",""));
user.setImageurl(sp.getString("imageurl", ""));
user.setPhone(sp.getString("phone", ""));
user.setCredit(sp.getBoolean("iscredit",false));

return user;
}
}


  

用户信息界面:--读取用户

1.判断用户是否已经登录

private void isLogin() {
//查看本地是否有用户的登录信息
SharedPreferences sp = this.getActivity().getSharedPreferences("user_info", Context.MODE_PRIVATE);
String name = sp.getString("name", "");
if(TextUtils.isEmpty(name)){
//本地没有保存过用户信息,给出提示:登录
doLogin();

}else{
//已经登录过,则直接加载用户的信息并显示
doUser();
}

}


2.给出提示:登录

private void doLogin() {
new AlertDialog.Builder(this.getActivity())
.setTitle("提示")
.setMessage("您还没有登录哦!么么~")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//                            UIUtils.toast("进入登录页面",false);
((BaseActivity) MeFragment.this.getActivity()).goToActivity(LoginActivity.class, null);
}
})
.setCancelable(false)
.show();
}


3.加载用户信息并显示

private void doUser() {

//1.读取本地保存的用户信息
User user = ((BaseActivity) this.getActivity()).readUser();
//2.获取对象信息,并设置给相应的视图显示。
tvMeName.setText(user.getName());

//判断本地是否已经保存头像的图片,如果有,则不再执行联网操作
boolean isExist = readImage();
if(isExist){
return;
}

//使用Picasso联网获取图片
Picasso.with(this.getActivity()).load(user.getImageurl()).transform(new Transformation() {
@Override
public Bitmap transform(Bitmap source) {//下载以后的内存中的bitmap对象
//压缩处理
Bitmap bitmap = BitmapUtils.zoom(source, UIUtils.dp2px(62),UIUtils.dp2px(62));
//圆形处理
bitmap = BitmapUtils.circleBitmap(bitmap);
//回收bitmap资源
source.recycle();
return bitmap;
}

@Override
public String key() {
return "";//需要保证返回值不能为null。否则报错
}
}).into(ivMeIcon);

//判断一下,是否开启了手势密码。如果开启:先输入手势密码
SharedPreferences sp = this.getActivity().getSharedPreferences("secret_protect", Context.MODE_PRIVATE);
boolean isOpen = sp.getBoolean("isOpen", false);
if(isOpen){
((BaseActivity)this.getActivity()).goToActivity(GestureVerifyActivity.class,null);
return;
}
}


  

登入用户--保存

LoginActivity

@OnClick(R.id.btn_login)
public void login(View view){//登录按钮的点击事件
String number = etLoginNumber.getText().toString().trim();
String pwd = etLoginPwd.getText().toString().trim();
if(!TextUtils.isEmpty(number) && !TextUtils.isEmpty(pwd)){
String url = AppNetConfig.LOGIN;
RequestParams params = new RequestParams();
params.put("phone",number);
params.put("password", MD5Utils.MD5(pwd));
client.post(url,params,new AsyncHttpResponseHandler(){
@Override
public void onSuccess(String content) {//200 404
//解析json
JSONObject jsonObject = JSON.parseObject(content);
boolean success = jsonObject.getBoolean("success");
if(success){

//解析json数据,生成User对象
String data = jsonObject.getString("data");
User user = JSON.parseObject(data, User.class);

//保存用户信息
saveUser(user);
//重新加载界面
removeAll();
goToActivity(MainActivity.class,null);

}else{
Toast.makeText(LoginActivity.this, "用户名不存在或密码不正确", Toast.LENGTH_SHORT).show();
}
}

@Override
public void onFailure(Throwable error, String content) {
UIUtils.toast("联网失败",false);

}
});
}else{
UIUtils.toast("用户名或密码不能为空", false);
}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: