接口回调登录注册

版权声明:叮叮叮!!!! 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;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/Xuexx_520/article/details/83962173