2014-03-05 69 views
-1

我有以下的情况下startActivityForResult令人讨厌的行为

当按下一个按钮,我startActivityForResult,它会打开与对话的主题另一个活动,并显示线性布局的列表,当我按线性布局我上完活动的的onClick监听

但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();       
} 

EDIT 2

我发现以下

1-我使用TabActivity为所有我的活动添加选项卡,现在onActivityResult在TabActivity上触发,但不在其内部的子活动中触发

任何人都可以帮助吗?

+0

您的代码在哪里? – GrIsHu

回答

0

你的活动中删除android:launchMode="singleInstance"android:noHistory我必须弄明白这个问题的原因,我用TabActivity和使用活动标签,并呼吁onActivityResult但在父母的活动,举办所有其他活动,我已经通过在父母活动中处理它来解决它

2

请确保您在单击该项目后在第二个活动中调用setResult(intent)方法。

编辑1: 我想你以错误的方式设置结果。它应该是具有Result_OK或Reuslt_Cancel的意图。

编辑2 - 举例:

Intent output = new Intent(); 
output.putExtra(key, val); 
setResult(RESULT_OK, output) 
+0

是的,我用我用来打开活动 –

+0

相同的代码来设置结果,所以请发布代码片段的代码。 – MSaudi

+0

我已将代码添加到原始帖子 –

0

提示检查:

  1. 你以前完成呼叫的setResult ()。

  2. 对于如果存在

+0

是的我打电话给调用完setResult之前,我没有添加android:launchMode =“singleInstance”或android:noHistory到我的清单文件 –

+0

然后,你的代码看起来不错,我实际上会调用SecondActivity .this.setResult(RESULT_OK),这个5000将作为onActivityResult中的请求代码返回 – marcinj

+0

为什么你需要'SecondActivity.this.'? – marcinj