onActivityResult总是返回0 [英] onActivityResult always returns 0

查看:116
本文介绍了onActivityResult总是返回0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我登录后LoginActivity返回结果。但是,我越来越0总是 onActivityResult()方法。我不能赶上原因。这是我的code:

I have LoginActivity returns result after login. However, I am getting 0 always in onActivityResult() method. I cannot catch the cause. Here is my code:

MainActivity.java:

@Override
protected void onResume() {
    super.onResume();

    Intent intent = new Intent(this, LoginActivity.class);
    startActivityForResult(intent, R.id.login);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

     if (requestCode == R.id.login || resultCode==RESULT_OK)
    synchronizeContacts(R.id.contactList);
     }
}

LoginActivity.java:

private TaskCompleteListener<CsResult> taskCompleteListener = new TaskCompleteListener<CsResult>(){
    @Override
    public void onComplete(int requestId, CsResult result) {
        if (result==null || result.return_code!=0){
            String message = !TextUtils.isEmpty(result.return_message) ? result.return_message : getString(R.string.msg_invalid_user);
            JAppUtils.showMsg(LoginActivity.this, message, MsgType.ERROR);
            return;
        }
        Log.d(TAG, "***** I can see this is called ******");
        setResult(RESULT_OK);
        finish();
    }
};

public void loginClick(View view){
    LoginTask task = new LoginTask(this);
    task.setTaskCompleteListener(taskCompleteListener);
    task.setLoginUser("user_id", "password");
    task.execute(ServerConfig.URL);
}

当我调试或查看日志, taskCompleteListener.onComplete()方法调用正确返回 MainActivity 来调用 onActivitResult()方法。 请求code 是正确的,但结果code 总是 Activity.RESULT_CANCEL

When I debug or see the log, taskCompleteListener.onComplete() method calls correctly and returns MainActivity to call onActivitResult() method. RequestCode is right but resultCode is always Activity.RESULT_CANCEL.

我可以再次检查?

推荐答案

试试这个

Intent intent = new Intent(this, LoginActivity.class);
startActivityForResult(intent, 1); 

而在你的 onActivityResult()用这个。

  @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    if(requestCode == 1 && resultCode == RESULT_OK && data != null )
    {                       
      // Here you can get the username and password         
    }       
}

而在你登录活动

And in your Login Activity

 Intent intent = getIntent();
 intent.putExtra("UserName", user_id); // Place your information.
 intent.putExtra("Password", password);
 setResult(RESULT_OK, intent);  
 finish();

好运气

这篇关于onActivityResult总是返回0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆