2016-01-21 110 views
0

我试图将数据反向传递给某个活动,但是我永远无法获得要调用的onActivityResult函数。当我开始新的活动,我创建像普通onActivityResult返回时未被调用

Intent intent = new Intent(this, NewLoanCost.class); 

intent.putExtra("defaultsArray", jDefaultsArray.toString()); 
intent.putExtra("loanSelection", loanSelection); 
intent.putExtra("buyerSellerSelection", buyerSellerSelection); 

startActivity(intent); 

一个新的意图,当我想回到以前的活动,我重写后退按钮来创建一个新的意图和存储数据

@Override 
public void onBackPressed() { 
    Intent intent = new Intent(); 

    intent.putExtra("fullCosts", fullCosts.toString()); 

    setResult(RESULT_OK, intent); 

    super.onBackPressed(); 
} 

但在第一个活动中,我甚至无法得到一个调试吐司出现。我错过了一些公然的东西吗?

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    //super.onActivityResult(requestCode, resultCode, data); 
    Toast.makeText(this, "onActivityResult", Toast.LENGTH_SHORT).show(); 
    if (requestCode == 1) { 
     if(resultCode == RESULT_OK){ 
      try { 
       jDefaultsArray = new JSONArray(data.getStringExtra("fullCosts")); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 

回答

5

要接收你应该使用的startActivityForResult代替startActivity

+0

我用我在阅读文档时一定错过了这一部分。谢谢! –

1

使用 “startActivityForResult” 的结果。

替换这是你的代码,然后应该工作坚持:

Intent intent = new Intent(this, NewLoanCost.class); 

intent.putExtra("defaultsArray", jDefaultsArray.toString()); 
intent.putExtra("loanSelection", loanSelection); 
intent.putExtra("buyerSellerSelection", buyerSellerSelection); 

startActivityForResult(intent); 
1

更改您的代码

Intent intent = new Intent(this, NewLoanCost.class); 

intent.putExtra("defaultsArray", jDefaultsArray.toString()); 
intent.putExtra("loanSelection", loanSelection); 
intent.putExtra("buyerSellerSelection", buyerSellerSelection); 

startActivityForResult(intent, 1); 

第二个参数是请求代码一个int,你会在onActivityResult

相关问题