问题标签 [startactivityforresult]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
955 浏览

android - 即使我在 FragmentPagerAdapter 中尝试 startActivityForResult、saveInstanceState,BACK 按钮的意图也会丢失

我的 android 应用程序中有这个导航模式:

PrimaryActivity (... ListView onClick -通过意图发送<PrimaryUri>
...) > MasterActivity (TabLayout, ViewPager, FragmentPageAdapter) >
FragmentA / FragmentB (...ListView onClick - 通过意图发送<PrimaryUri> + <DetailUri> .. .) > 详细活动。

现在,当我在DetailActivity中按下 BACK 按钮时,MasterActivity 被销毁并使用 Fragment A 和 B 的新实例重新创建,并且 Intent 数据 ( <PrimaryUri> ) 丢失

我尝试通过这种方式在 Activies 之间保持<PrimaryUri> :

  • 在 MasterActivity 中覆盖 onSaveInstanceState / onCreate(Bundle),但即使 onSaveInstance 保存数据, Bundle 也始终为空
  • 使用 getActivity().startActivityForResult(... 启动 DetailActivity,在 DetailActivity 中设置 resultIntent 并调用 setResult(OK, ResultCode > 0) 并在 MasterActivity.onActivityResult 中读取值...但从未调用过 onActivityResult
  • 用 startActivityForResult 启动 DetailActivity, ...dtto...FragmentB.onActivityResult...但永远不会调用 onActivityResult
  • 检查清单是否有错误的属性

现在我真的很感谢问题的帮助:如何在我的应用程序中保留<PrimaryUri>?我更喜欢使用意图来解决这种奇怪的行为。一些论坛讨论了 FragmentPageAdapter 等中的错误......也许我会重构它以使用 SharedPreferences 如果它是快速解决方案......

编辑:一些附加信息:

在详细活动中:

在 MasterActivity 我有:

在 FragmentB 我有:

奇怪的行为看起来像:

  1. 我在 DetailActivity > 按 BACK 按钮
  2. MasterActivity.onDestroy 被调用(为什么在那里?).. =
  3. 对 FragmentB 的 WeakReference 为 null 并创建了新实例 =
  4. MasterActivity 或 FragmentB 的 onActivityResult 永远不会被调用。

我认为原因是在等待 onActivityResult 时出现了 onDestroy。但是为什么调用它以及为什么没有完全重新创建 MasterActivity 以捕获 onActivityResult 回调?

0 投票
2 回答
108 浏览

android - 无法从子活动返回数据 (setResult)

在我的项目中,ActivityTwo 是作为 ActivityOne 的子活动启动的,而 ActivityOne 又经过修改以处理从 ActivityTwo 返回的数据。

ActivityOne 中的 TextView 应检索作为 ActivityTwo 中的键值添加到意图对象的 EditText 中输入的文本。尽管成功启动,但它并没有提取意图对象。

我查看了可能面临的类似问题并解决了这个问题: How to manage `startActivityForResult` on Android?

然而,我仍然无法弄清楚为什么我的 TextView 无法设置从第二个活动中检索到的意图对象中提取的文本。

任何有用的帮助表示赞赏。

在此先感谢您可以在下面看到代码:

活动一

活动二

0 投票
1 回答
86 浏览

android - ContactPicker 未在edittext中设置

我正在android中实现contactPicker

我创建了一个图像按钮并单击该按钮我开始 activityforresult 以获取编辑文本中的单个联系人电话号码

但问题是 data 始终为 null 。

这是我的代码

这是活动结果

我要做的就是选择一个联系人并将其电话号码加载到 EditText 。请帮助我,我尝试了互联网上所有可用的解决方案..我在哪里犯了错误?

0 投票
1 回答
1661 浏览

android - 片段中的 startActivityForResult

我有两个问题:

第一:我想知道当我使用方法 1 时,我知道 2 方法的不同之处,因为我的应用程序运行正常,但我更改方法 2 它无法运行。方法 1(简单拍照):

和方法2:

---相机片段的onActivityResult:

主要问题:现在我有 MainFragment 扩展 FragmentActivity(有片段相机和地图)。但是当我在片段相机中

然后在onActivityResult方法中,resultCode总是==0,尽管它必须==1;. 谁可以显示我的问题???我哪里错了??

请注意 mainFragment 我只是调用:

谢谢

0 投票
2 回答
850 浏览

android - 如何使用 startActivityForResult 管理活动

我遇到了这样的情况:

Activity A --> B --> C --> D,当 D 完成后,我必须刷新 ActivityA 以显示我在 ActivityB 、 ActivityC 和 ActivityD 中输入的内容。这是我的代码:

活动A

活动B

ActivityC代码和ActivityB一样,最后一个ActivityD如下:

这样我就可以得到ActivityB,ActivityC,ActivityD中的输入值了。但是我必须onActivityResult在每一个Activity上重写方法并一个一个地处理数据。有没有其他简单的方法可以让我处理这种情况?有什么好的建议我将不胜感激。

0 投票
2 回答
577 浏览

android - How to open messages from Android App using startActivityForResult()

I want to use a floating action button for opening a new message from my android phone. I have used startActivityForResult() method for successfully opening settings. But when I use the same for opening messages, this method doesn't seem to work. I have also attached my code to be more clear.

0 投票
1 回答
541 浏览

android - 带有 startActivityForResult 的适配器

大家好,我想在 BindHolder 中编辑 Recycle-view startAcivityForResult/onActivityResult 我的代码项

在 BindHolder 中值为 null 但在这里它可以正常工作

请有任何提示!非常感谢大家

0 投票
1 回答
186 浏览

android-intent - 在活动之间传递额外内容并将它们转发到单个活动

我的应用程序是一个基本的登录应用程序,最后将显示用户在其他活动中的字段输入的所有值。我正在使用意图对象和标志。活动使用:

  • 意图额外存储键值,
  • FLAG_ACTIVITY_FORWARD_RESULT
  • startActivityForResult() 和 onActivityForResult() 方法

因此,命名为 AActivity、BActivity、Caactivity 的活动和导航流必须是:A → B → C → A,结果来自 B 和 C。

我对代码逻辑的理解是,这告诉 Android 活动 3 应将其结果转发回调用活动 2 的活动,在本例中为活动 1。同样,当活动 3 设置其结果并完成时,活动 1 中的 onActivityResult() 将使用活动 3 发送的结果数据进行调用。

但是,当我运行应用程序时,我只从活动 3 获取结果,但从活动 2 接收到 null,在活动 1 的 TextView 中显示为 null,null,valueC,valueC,如图所示。 点击图片

我用谷歌搜索并搜索了出现的类似问题,但无法解决问题。

预先感谢您的帮助

这是我的代码:

活动:

}

B活动:

}

C活动:

}

0 投票
2 回答
895 浏览

android - 完成第二个活动后,第一个活动中的 onActivityResult 未返回结果

Activity A 使用以下代码调用 ActivityB

活动 B 通过以下方式调用活动 c:

我以返回结果完成活动 C 并在那里开始新的活动 D

我想在获取返回结果时完成活动 A 和活动 B

但我没有得到返回结果。在这种情况下

总之我想要这个功能

我只得到两者之一。它进行下一个活动或返回结果。我想同时返回返回结果的下一个活动。

0 投票
1 回答
532 浏览

android - 当我尝试从适配器调用 onActivityForResult 时,为什么我的活动调用 onDestroy?

在主要活动中有一个具有RecyclerView的片段。当用户单击 RecyclerView 中的项目时,我从我的适配器调用,我在我的主要活动中的方法((Activity)v.getContext()).startActivityForResult(intent, Config.REQUEST_ATTENDEES)上处理了这个请求。onActivityResult并从 再次膨胀片段onActivityResult。我onActivityResult被触发但在被触发后,我的主要活动调用onDestroy. 以下是我查看的资源:

我们可以从适配器调用 startActivityForResult 吗?

onActivityResult 在 onDestroy 之后不再被调用

我在想第二个可能是我的问题,但我不确定,因为在我的适配器中,(Activity)v.getContext()应该是我的主要活动。任何建议都会很好。