接上个问题,贴出代码

接上个问题,贴出代码

public class LoginActivity extends BaseActivity{
    private static final String KEY_USERNAME = "key_username";
    private static final String KEY_USERPASSWORD = "key_userpassword";
    private EditText etUser;
    private EditText etPassword;
    private Button login;
    private TextView register;
    //这是一个逻辑类
    private UserBiz mUserBiz = new UserBiz();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        initView();
        initIntent();
    }

    private void initIntent() {
        Intent intent = getIntent();
        if (intent != null) {
            String username = intent.getStringExtra(KEY_USERNAME);
            Log.e("TAGG","测试 :" + username);
            if (username != null) {
                Log.e("TAGG","测试 :" + username);
                etUser.setText(username);
            }
            String password = intent.getStringExtra(KEY_USERPASSWORD);
            if (password != null) {
                Log.e("TAGG","测试 :" + password);
                etPassword.setText(password);
            }
        }
    }

    private void initView() {
        etUser = findViewById(R.id.id_et_username);
        etPassword = findViewById(R.id.id_et_password);
        login = findViewById(R.id.id_btn_login);
        register = findViewById(R.id.id_btn_register);
    }

    public void click(View view) {
        switch (view.getId()) {
            case R.id.id_btn_login:
                login.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        String userName = etUser.getText().toString();
                        String passWord = etPassword.getText().toString();
                        //判断内容是否为空
                        if (TextUtils.isEmpty(userName) || TextUtils.isEmpty(passWord)) {
                            Toast.makeText(LoginActivity.this, "账号或者密码不能为空", Toast.LENGTH_SHORT).show();
                        return;
                        }
                        // 加载进度框
                            startLoadingProgress();

                        mUserBiz.login(userName, passWord, new CommonCallback<User>() {
                            @Override
                            public void onError(Exception e) {
                                //加载完成,取消加载进度框
                                stopLoadingProgress();
                                Log.e("TAG","测试onError");
                                Toast.makeText(LoginActivity.this, "账号或者密码错误", Toast.LENGTH_SHORT).show();
                            }

                            @Override
                            public void onSuccess(User user) {
                                stopLoadingProgress();
                                //对账号的一个保存
                                UserInfoHolder.getInstance().setUser(user);
                                toMainActivity();
                                finish();
                            }
                        });
                    }
                });
                break;
            case R.id.id_btn_register:
                register.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        toRegisterActivity();
                    }
                });
                break;
        }
    }

    private void toRegisterActivity() {
        Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
        startActivity(intent);
    }

    private void toMainActivity() {
        Intent intent = new Intent(LoginActivity.this, MainActivity.class);
        startActivity(intent);
    }


    public static void launch(Context context, String userName, String password) {
        Intent intent = new Intent(context,LoginActivity.class);
        intent.putExtra(KEY_USERNAME,userName);
        intent.putExtra(KEY_USERPASSWORD,password);
        context.startActivity(intent);
    }
//我也不知道里面代码到底干嘛的
    @Override
    protected void onResume() {
        super.onResume();
        CookieJarImpl cookieJar = (CookieJarImpl) OkHttpUtils.getInstance().getOkHttpClient().cookieJar();
        cookieJar.getCookieStore().removeAll();
    }
}

上面是登录页的  下面是 注册页的

public class RegisterActivity extends BaseActivity {
    private EditText mEtUsername;
    private EditText mEtPassword;
    private EditText mEtRePassword;
    private Button mBtnRegister;
    private UserBiz mUserBiz;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        setUpToolbar();
        initView();
        initEvent();
        mUserBiz = new UserBiz();
        setTitle("注册");
    }

    private void initEvent() {
        mBtnRegister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String userName = mEtUsername.getText().toString();
                String paw = mEtPassword.getText().toString();
                String rePaw = mEtRePassword.getText().toString();
                if (TextUtils.isEmpty(userName)||TextUtils.isEmpty(paw)){
                    Toast.makeText(RegisterActivity.this, "账号或者密码不能为空", Toast.LENGTH_SHORT).show();
                    return;
                }
                if (!paw.equals(rePaw)){
                    Toast.makeText(RegisterActivity.this, "请输入相同密码", Toast.LENGTH_SHORT).show();
                    return;
                }

                //加载框
                startLoadingProgress();
                mUserBiz.register(userName, paw, new CommonCallback<User>() {
                    @Override
                    protected void onError(Exception e) {
                        stopLoadingProgress();
                        Toast.makeText(RegisterActivity.this, "账号或者密码错误", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    protected void onSuccess(User response) {
                        stopLoadingProgress();
                        Log.e("TAGG","测试Rig :" + response.getUserName());
                        Log.e("TAGG","测试Rig :" + response.getPassword());
                        LoginActivity.launch(RegisterActivity.this,response.getUserName(),response.getPassword());
                        finish();
                    }
                });
            }
        });

    }

    private void initView() {
        mEtUsername = findViewById(R.id.id_et_username);
        mEtPassword =  findViewById(R.id.id_et_password);
        mEtRePassword =  findViewById(R.id.id_et_repassword);
        mBtnRegister =  findViewById(R.id.id_btn_register);
    }
//设置导航栏
protected void setUpToolbar() {
        Toolbar toolbar = findViewById(R.id.id_toolbar);
        setSupportActionBar(toolbar);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                onBackPressed();
            }
        });
    }

    @Override
    public void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        mUserBiz.onDestory();
    }
}

下面就是逻辑类 UserBiz

public class UserBiz {
    public void onDestory() {
        OkHttpUtils.getInstance().cancelTag(this);
    }

//这是注册的逻辑实现
    public void register(String username, String password, CommonCallback<User> callBack) {
        OkHttpUtils
                .post()
                .url(Config.baseUrl + "user_register")
                .tag(this)
                .addParams("username", username)
                .addParams("password", password)
                .build()
                .execute(callBack);
    }

//这是登录的逻辑实现
    public void login(String username, String password, CommonCallback<User> callBack) {
        OkHttpUtils
                .post()
                .url(Config.baseUrl + "user_login")
                .tag(this)
                .addParams("username", username)
                .addParams("password", password)
                .build()
                .execute(callBack);
    }

}


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

接你http://class.imooc.com/course/qadetail/63982问题。你得从源头找,CommonCallback中调 onSuccess()前:1)看一下是否是onResponse返回的问题,User对象是否正常,名字是否返回的就是一个空。2)看一下GsonUtil转成对象时是否有误,这时getUserName()是否有值。3)User 类中的名字是否有对应set,get方法,方法是否正确。4)User类 中属性名与后台返回的key是否一致。

  • 不讲究这些 提问者 #1
    老师厉害 是第四点的问题
    2018-08-13 13:05:45
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android网络操作与数据存储2018版
  • 参与学习           人
  • 提交作业       307    份
  • 解答问题       1613    个

本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师