Android 安卓&x27;s";onActivityResult“;机制赢得';行不通
我在一个简单的应用程序中遇到了一个大而令人沮丧的问题。 我有两个活动-A和B。活动A通过单击按钮打开活动B。活动B有两个“结束”:如果用户单击B,返回到A,如果用户单击B.OK按钮,则活动B已完成,但在此之前,它将设置结果“OK”,以便活动A也可以关闭 这是以下代码的伪代码:Android 安卓&x27;s";onActivityResult“;机制赢得';行不通,android,android-activity,Android,Android Activity,我在一个简单的应用程序中遇到了一个大而令人沮丧的问题。 我有两个活动-A和B。活动A通过单击按钮打开活动B。活动B有两个“结束”:如果用户单击B,返回到A,如果用户单击B.OK按钮,则活动B已完成,但在此之前,它将设置结果“OK”,以便活动A也可以关闭 这是以下代码的伪代码: btnNext.setOnClickListener(new OnClickListener() { @Override public void onClick(View v
btnNext.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//some code...
startAct(data);
}
});
private void startAct(Intent inte) {
startActivityForResult(inte, -999);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
System.out.println(resultCode);
if(requestCode != -999)
return;
if(resultCode == RESULT_OK)
finish();
}
活动B是这样的:
btnOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//some other code...
finishOK();
}
});
private void finishOK() {
setResult(RESULT_OK, new Intent());
finish();
}
问题是这不起作用——当我按下“btnOK”键时,B应该完成,A应该“捕捉”结果并完成,但这根本不会发生。我缺少什么?您必须使用非负的
请求代码。如果requestCode
为负值,则startActivityForResult
与startActivity
相同。看官方文件哦,天哪,我真走运!我选择了任何一个数字只是为了让它与众不同,我从…中选错了一个。。。。千千万万的人:)谢谢,这很有效!