- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在开发一个 Android 应用程序,其中包含一个具有多个 fragment 的主机 Activity 。我在我的主机 Activity 和我的 fragment 中使用了 onActivityResult() 方法。
在宿主 Activity 中
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode)
{
}
}
fragment 中
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode)
{
}
}
当我从 fragment 启动 activityForResult 时, fragment 的 onActivityResult 没有被调用。我是这样做的
startActivityForResult(Intent.createChooser(intent, "Select File"),REQUEST_CODE);
当我将这一行添加到我的主机 Activity 的结果方法时,我解决了我的问题super.onActivityResult(requestCode, resultCode, data);
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode)
{
}
}
现在我的 fragment 的 onActivityResult() 正在调用。我想知道当我将 super.onActivityResult() 添加到 Activities onResult 方法中时,这行 super.onActivityResult() 实际上做了什么?当 Activity 有多个 fragment 时,onActivityResult() 的调用顺序。
最佳答案
I want to know what this line super.onActivityResult()
在您的例子中,它调用 FragmentActivity
的 onActivityResult
。 Android 检查是否存在应调用其 onActivityResult 的 Fragment
。
in which order the onActivityResult() gets call, when activity has multiple fragments
首先是托管 Activity
,最后是调用 startActivityForResult
的 Fragment
。
要更深入地了解该主题,请查看 FragmentActiviy#onActivityResult
关于android - super.onActivityResult(requestCode, resultCode, data);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40417718/
我认为 requestCode 是某种标识符,仅需要 Intent 或类似的东西,如果我错了,请纠正我。但是如果是这种情况,为什么如果我的pendingintent 的requestCode 是2,当
我有一个使用 startActivityForResult(intent,634) 的 Activity。如果我从 Activity 中使用它,onActivityResult() 中的 reques
我想知道我是否正确理解了 requestCode 和 resultCode 的概念?基本上,我有一个与 Activity 关联的任意整数(requestCode)。例如,在 Notepad tutor
我遇到了问题,但不知道如何解决: 我想在 AndroidStudio 中启动一个结果 Activity ,因此之前我使用 startActivityForResult(intent,1); 并且一切正
我使用请求代码从 MainActivity 调用到 InfomationActivity。但是,当返回 MainActivity 时,它处于非 Activity 状态。这里有什么问题? 在 MainA
为什么显示我的 toast 消息?我的 CEVAP_SORGULA 变量等于 322,但我的 Intent 请求代码是 332 private final static int CEVAP_SORGU
当您调用 startActivityForResult() 时,您还提供“int requestCode”。您如何在启动的 Activity 中获取该参数(以更改那里的一些初始化)? 或者我理解这个参
任何人都可以列出要与 startActivityForResult() 一起传递的 requestCode 的值及其用途吗?另外,您能否解释 setResult 可用的参数,例如 RESULT_OK
我正在尝试关闭从我自己的 Activity 中打开的 Activity 。我认为完成 Activity 是更好的方法,但它不起作用。这是我打开 Activity 的代码。 (与第三方包一起使用,这可能
我正在尝试实现一个提醒应用程序。我将所有提醒详细信息存储在 sqlite 数据库中,例如 id、标题、dateInfo、timeInfo 等。 我想在适当的时候通知用户我将使用 AlarmManage
我正在使用 AlarmManager安排 1 到 35 个警报之间的任意位置(取决于用户输入)。当用户请求安排新的闹钟时,我需要取消当前的闹钟,因此我使用相同的 requestCode 创建所有闹钟,
ActivityCompat.requestPermissions 之类的方法要求我向它们传递一个请求代码,以便稍后在回调中进行测试(在本例中为 onRequestPermissionsResult)
背景: 我正在通过 AlarmManager 使用 PendingIntent 进行警报。 问题: 一开始我以为要取消之前的,我必须提供我之前用来启动警报的确切 requestCode。 但后来我发现
我正在从我的 Fragment 开始一个新的 Activity startActivityForResult(intent, 1); 并希望在 Fragment 的父 Activity 中处理结果:
因为startActivityForResult已弃用。 所以我替换 startActivityForResult至registerForActivityResult这是我的代码: ActivityR
我正在类里面制作一个基本的 android/kotlin 警报应用程序。一旦触发警报,我希望能够从 SQLite 数据库中删除警报,或者如果它是重复警报,则重新设置警报。对于这两个,我需要来自 pen
我不知道我哪里错了。这可能是一个微不足道的错误,但我无法弄清楚。 形成我的第一个 Activity 我开始另一个 Activity 的结果: Intent ccard_intent= new Inte
我正在调用以下方法: Intent intent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); st
我看了https://developer.android.com/reference/android/app/Activity对于 startActivityForResult 和 Google Si
我正在开发一个 Android 应用程序,其中包含一个具有多个 fragment 的主机 Activity 。我在我的主机 Activity 和我的 fragment 中使用了 onActivityR
我是一名优秀的程序员,十分优秀!