返回时不调用 onActivityResult
onActivityResult not being called when going back
我正在尝试将数据向后传递给 activity,但是我永远无法调用我的 onActivityResult
函数。当我启动新的 activity 时,我创建了一个新的意图,如常规
Intent intent = new Intent(this, NewLoanCost.class);
intent.putExtra("defaultsArray", jDefaultsArray.toString());
intent.putExtra("loanSelection", loanSelection);
intent.putExtra("buyerSellerSelection", buyerSellerSelection);
startActivity(intent);
当我想返回到之前的 activity 时,我将覆盖后退按钮以创建新的意图并存储数据
@Override
public void onBackPressed() {
Intent intent = new Intent();
intent.putExtra("fullCosts", fullCosts.toString());
setResult(RESULT_OK, intent);
super.onBackPressed();
}
但在第一个 activity 中,我什至无法让调试提示出现。我错过了一些明显的东西吗?
@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();
}
}
}
}
要获得结果,您应该使用 startActivityForResult
而不是 startActivity
使用startActivityForResult
.
用这个替换你的代码,然后它应该可以工作:
Intent intent = new Intent(this, NewLoanCost.class);
intent.putExtra("defaultsArray", jDefaultsArray.toString());
intent.putExtra("loanSelection", loanSelection);
intent.putExtra("buyerSellerSelection", buyerSellerSelection);
startActivityForResult(intent);
将您的代码更改为
Intent intent = new Intent(this, NewLoanCost.class);
intent.putExtra("defaultsArray", jDefaultsArray.toString());
intent.putExtra("loanSelection", loanSelection);
intent.putExtra("buyerSellerSelection", buyerSellerSelection);
startActivityForResult(intent, 1);
第二个参数是一个整数,其中包含您将在 onActivityResult 中使用的请求代码
我正在尝试将数据向后传递给 activity,但是我永远无法调用我的 onActivityResult
函数。当我启动新的 activity 时,我创建了一个新的意图,如常规
Intent intent = new Intent(this, NewLoanCost.class);
intent.putExtra("defaultsArray", jDefaultsArray.toString());
intent.putExtra("loanSelection", loanSelection);
intent.putExtra("buyerSellerSelection", buyerSellerSelection);
startActivity(intent);
当我想返回到之前的 activity 时,我将覆盖后退按钮以创建新的意图并存储数据
@Override
public void onBackPressed() {
Intent intent = new Intent();
intent.putExtra("fullCosts", fullCosts.toString());
setResult(RESULT_OK, intent);
super.onBackPressed();
}
但在第一个 activity 中,我什至无法让调试提示出现。我错过了一些明显的东西吗?
@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();
}
}
}
}
要获得结果,您应该使用 startActivityForResult
而不是 startActivity
使用startActivityForResult
.
用这个替换你的代码,然后它应该可以工作:
Intent intent = new Intent(this, NewLoanCost.class);
intent.putExtra("defaultsArray", jDefaultsArray.toString());
intent.putExtra("loanSelection", loanSelection);
intent.putExtra("buyerSellerSelection", buyerSellerSelection);
startActivityForResult(intent);
将您的代码更改为
Intent intent = new Intent(this, NewLoanCost.class);
intent.putExtra("defaultsArray", jDefaultsArray.toString());
intent.putExtra("loanSelection", loanSelection);
intent.putExtra("buyerSellerSelection", buyerSellerSelection);
startActivityForResult(intent, 1);
第二个参数是一个整数,其中包含您将在 onActivityResult 中使用的请求代码