Android 对话框片段和 onActivityResult
Posted
技术标签:
【中文标题】Android 对话框片段和 onActivityResult【英文标题】:Android Dialog Fragments and onActivityResult 【发布时间】:2014-09-02 03:59:24 【问题描述】:我创建了一个应用程序,它向用户显示一个对话框片段,其中包含两个选项:Yes
和 No
。
如果用户选择“是”,应用程序将调用安装在设备上的Zxing barscan应用程序,并返回结果。
现在,我有了这个工作的概念证明。然而,这个概念证明使用了一个简单的 Activity。因此,我可以使用活动而不是对话框片段来实现此 Barscan 结果。
概念证明中使用的代码如下:
public void onActivityResult(int requestCode, int resultCode, Intent intent)
//retrieve scan result
IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanningResult != null)
String scanContent = scanningResult.getContents();
String scanFormat = scanningResult.getFormatName();
formatTxt.setText("FORMAT: " + scanFormat);
contentTxt.setText("CONTENT: " + scanContent);
else
Toast toast = Toast.makeText(getApplicationContext(),
"No scan data received!", Toast.LENGTH_SHORT);
toast.show();
此代码不适用于对话框片段。我一直在搜索并遇到this 问题。
但是它不会集成,因为我无法访问所需的 requestCode、resultCode 或 intent,并且对如何访问感到非常困惑。
【问题讨论】:
【参考方案1】:您的片段应该通过startActivityForResult
而不是getActivity().startActivityForResult
发起活动
在onActivityResult
的活动中调用super.onActivityResult
和onActivityResult
的片段中,您可以将您发布的代码放在此处。
更多信息为什么:
onActivityResult is not being called in Fragment Where should onActivityResult be handled, dialog fragment, fragment, or activity?【讨论】:
谢谢。所以我理解正确,我应该将 onActivityResult() 添加到调用片段的活动中。正是在这个活动中,我可以从 barscan 应用程序中检索结果? 这取决于你想在哪里处理你的回复。如果在片段内部,请执行我在这里写的操作,如果在内部活动通过 getActivity().startActivityForResult 调用它并在活动中处理它。以上是关于Android 对话框片段和 onActivityResult的主要内容,如果未能解决你的问题,请参考以下文章