版权声明:叮叮叮!!!! https://blog.csdn.net/Xuexx_520/article/details/83962173
实现下图效果,点击注册,跳转到注册页面,注册成功跳转回登录页面
登录成功,跳转到个人中心
图一的代码
package com.example.xxx.day10_login_zhuce;
public class MainActivity extends AppCompatActivity implements View.OnClickListener,LoginPresenter.MyListener {
private Toolbar tb_login;
private EditText ed_tel;
private EditText ed_pass;
private Button but_login;
private Button but_zhuce;
private String tel;
private String pass;
private LoginPresenter loginPresenter;
SharedPreferences mSharedPreferences;
SharedPreferences.Editor mEditor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件
initView();
loginPresenter = new LoginPresenter(this);
mSharedPreferences=getSharedPreferences("xxx",MODE_PRIVATE);
loginPresenter.isFirst(mSharedPreferences);
}
/*
初始化控件
*/
private void initView() {
tb_login = findViewById(R.id.tb_login);
ed_tel = (EditText) findViewById(R.id.ed_tel);
ed_pass = (EditText) findViewById(R.id.ed_pass);
but_login = (Button) findViewById(R.id.but_login);
but_zhuce = (Button) findViewById(R.id.but_zhuce);
but_login.setOnClickListener(this);
but_zhuce.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
/*
点击登录
*/
case R.id.but_login:
tel = ed_tel.getText().toString().trim();
pass = ed_pass.getText().toString().trim();
new AsyncTask<String, String, LoginSuccess>(){
@Override
protected LoginSuccess doInBackground(String... strings) {
LoginModel loginModel=new LoginModel();
//获得数据
String textString=loginModel.login(strings[0]);
LoginSuccess login=new Gson().fromJson(textString,LoginSuccess.class);
return login;
}
@Override
protected void onPostExecute(LoginSuccess loginSuccess) {
super.onPostExecute(loginSuccess);
loginPresenter.checkLogin(loginSuccess);
}
}.execute( "http://120.27.23.105/user/login?mobile="+tel+"&password="+pass);
break;
/*
点击注册
*/
case R.id.but_zhuce:
//跳转到注册页面
startActivity(new Intent(MainActivity.this,ZhuceActivity.class));
break;
}
}
//接口回调,重写方法(登录成功)
@Override
public void success(String msg,LoginSuccess loginSuccess) {
//往sp里面存数据
mEditor=mSharedPreferences.edit();
mEditor.putBoolean("first",true);
mEditor.putString("icon",(String) loginSuccess.getData().getIcon());
mEditor.putString("name",loginSuccess.getData().getUsername());
mEditor.putString("nicheng",(String) loginSuccess.getData().getNickname());
mEditor.commit();
Toast.makeText(MainActivity.this,msg,Toast.LENGTH_SHORT).show();
Intent intent= new Intent(MainActivity.this,MeActivity.class);
startActivity(intent);
finish();
}
@Override
public void error(String msg) {
Toast.makeText(MainActivity.this,msg,Toast.LENGTH_SHORT).show();
}
@Override
public void notFirst() {
Intent intent= new Intent(MainActivity.this,MeActivity.class);
startActivity(intent);
finish();
}
}
注册页面
public class ZhuceActivity extends AppCompatActivity implements View.OnClickListener,ZhucePresenter.MyListener {
private Toolbar tb_zhuce;
private EditText ed_tel;
private EditText ed_pass;
private Button but_zhuce;
private final int ISNULL=0;
private final int SUCCESS=1;
private ZhucePresenter mZhucePresenter;
private String tel;
private String pass;
private ZhuceModel zhuceModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zhuce);
//初始化控件
initView();
mZhucePresenter=new ZhucePresenter(this);
}
/*
初始化控件
*/
private void initView() {
tb_zhuce = (Toolbar) findViewById(R.id.tb_zhuce);
ed_tel = (EditText) findViewById(R.id.ed_tel);
ed_pass = (EditText) findViewById(R.id.ed_pass);
but_zhuce = (Button) findViewById(R.id.but_zhuce);
//设置toolbar
tb_zhuce.setNavigationIcon(R.drawable.back);
tb_zhuce.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
//点击
but_zhuce.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.but_zhuce:
zhuceModel = new ZhuceModel();
tel = ed_tel.getText().toString().trim();
pass = ed_pass.getText().toString().trim();
String path="http://120.27.23.105/user/reg?mobile="+tel+"&password="+pass;
new AsyncTask<String, Void, Zhuce>(){
@Override
protected Zhuce doInBackground(String... strings) {
String textString=zhuceModel.zhuce(strings[0]);
Zhuce zhuce=new Gson().fromJson(textString,Zhuce.class);
return zhuce;
}
@Override
protected void onPostExecute(Zhuce zhuce) {
super.onPostExecute(zhuce);
//在presenter判断是否注册成功
mZhucePresenter.checkZhuce(zhuce);
}
}.execute(path);
break;
}
}
@Override
public void success(String msg) {
Toast.makeText(ZhuceActivity.this,msg,Toast.LENGTH_SHORT).show();
//跳转
startActivity(new Intent(this,MainActivity.class));
finish();
}
@Override
public void error(String msg) {
Toast.makeText(ZhuceActivity.this,msg,Toast.LENGTH_SHORT).show();
}
}
注册的Presenter,判断注册是否成功
public class ZhucePresenter {
/*
判断是否注册成功
*/
public void checkZhuce(Zhuce zhuce) {
if(zhuce.getCode().equals("0")){
//接口回调(注册成功)
mMyListener.success(zhuce.getMsg());
} else {//接口回调(注册失败)
mMyListener.error(zhuce.getMsg());
}
}
public ZhucePresenter.MyListener mMyListener;
public interface MyListener{
void success(String msg);
void error(String msg);
}
public ZhucePresenter(ZhucePresenter.MyListener myListener) {
mMyListener = myListener;
}
}
注册成功后回到登录页面MainActivity
在登录的Presenter进行判断登录是否成功,并且判断是否是第一次登录
public class LoginPresenter {
/*
判断登录是否成功
*/
public void checkLogin(LoginSuccess loginSuccess){
if (loginSuccess.getCode().equals("0")){
mMyListener.success(loginSuccess.getMsg(),loginSuccess);
} else {
mMyListener.error(loginSuccess.getMsg());
}
}
public MyListener mMyListener;
/*
判断是否第一次登录
*/
public void isFirst(SharedPreferences sharedPreferences) {
boolean first=sharedPreferences.getBoolean("first",false);
if(first==true){
mMyListener.notFirst();
}
}
public interface MyListener{
void success(String msg,LoginSuccess loginSuccess);
void error(String msg);
void notFirst();
}
public LoginPresenter(MyListener myListener) {
mMyListener = myListener;
}
}
登录成功后带着手机号跳转到个人中心页面,设置sp里面存储的控件值
public class MeActivity extends AppCompatActivity implements View.OnClickListener {
private ImageView icon;
private TextView name;
private TextView nicheng;
private Button back;
private Button clear;
SharedPreferences mSharedPreferences;
SharedPreferences.Editor mEditor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_me);
initView();
mSharedPreferences=getSharedPreferences("xxx",MODE_PRIVATE);
String savenineng=mSharedPreferences.getString("nicheng","");
String saveicon=mSharedPreferences.getString("icon","");
String savename=mSharedPreferences.getString("name","");
ImageLoader.getInstance().displayImage(saveicon, icon);
name.setText(savename);
nicheng.setText(savenineng);
}
/*
初始化控件
*/
private void initView() {
icon = (ImageView) findViewById(R.id.icon);
name = (TextView) findViewById(R.id.name);
nicheng = (TextView) findViewById(R.id.nicheng);
back = (Button) findViewById(R.id.back);
back.setOnClickListener(this);
clear = (Button) findViewById(R.id.clear);
clear.setOnClickListener(this);
}
/*
在登录页面点击退出
*/
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.back:
finish();
break;
case R.id.clear:
mEditor=mSharedPreferences.edit();
mEditor.clear();
mEditor.commit();
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent);
finish();
break;
}
}
}