Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android startActivityForResult令人讨厌的行为_Android_Android Activity_Start Activity - Fatal编程技术网

Android startActivityForResult令人讨厌的行为

Android startActivityForResult令人讨厌的行为,android,android-activity,start-activity,Android,Android Activity,Start Activity,我有以下情况 当我按下按钮startActivityForResult时,它会打开另一个带有对话框主题的活动并显示线性布局列表,当我按下线性布局时,我会在onClick Listener上完成该活动 public void onClick(View v) { setResult(5000); SecondActivity.this.finish(); } 但是从未调用onActivityResult方法 有人能帮上忙吗 编辑:添加代

我有以下情况

当我按下按钮startActivityForResult时,它会打开另一个带有对话框主题的活动并显示线性布局列表,当我按下线性布局时,我会在onClick Listener上完成该活动

public void onClick(View v) {

   setResult(5000);
   SecondActivity.this.finish();                        
}
但是从未调用onActivityResult方法

有人能帮上忙吗

编辑:添加代码

打开对话框活动的活动

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra(DATA_LIST_KEY, myDataList);
startActivityForResult(intent, 5000);
onClick侦听器

public void onClick(View v) {

   setResult(5000);
   SecondActivity.this.finish();                        
}
编辑2

我发现了以下几点

1-我正在使用TabActivity将选项卡添加到我的所有活动中,现在onActivityResult在TabActivity上启动,但不会在其中的子活动中启动

任何一种方法都可以提供帮助吗?

请确保在单击项目后的第二个活动中调用SetResultEnt方法

编辑1: 我认为你把结果定错了。它应该是一个带有Result\u OK或Reuslt\u Cancel的意图

编辑2-示例:

Intent output = new Intent();
output.putExtra(key, val);
setResult(RESULT_OK, output)
检查提示:

在完成之前调用setResult

删除活动的android:launchMode=singleInstance或android:noHistory(如果存在)


我已经找出了这个问题的原因,我使用TabActivity并将activities用作选项卡,调用了onActivityResult,但在包含所有其他活动的父活动中,我通过在父活动中处理它来解决它

Yes我使用与打开activity相同的代码设置结果Yes我在调用finish之前调用setResult,我没有将android:launchMode=singleInstance或android:noHistory添加到我的清单文件中。然后,您的代码看起来很好,我实际上会调用SecondActivity.this.setResultRESULT_好的,这5000将作为请求代码返回到onActivityResult中。为什么需要SecondActivity.this。无论如何?因为代码在OnClick Listener中,所以我更喜欢确保访问的对象正确,我认为这不是问题所在。您添加了使用TabActivity的信息-查看以下答案: