android - 使用 "id"作为来自 FragmentActivity 的 "startActivityForResult"的 requestCode

标签 android android-fragments startactivityforresult

Android Docs在关于 ID XML 资源 中说:

A unique resource ID defined in XML. [...] which you can use as [...] unique integer for use in your application code (for example, as an ID for a dialog or a result code).

我在 ids.xml 中创建了 request

<item name="request" type="id" />

它的值为-1000003。我想将它用作 FragmentActivitystartActivityForResultrequestCode。但正如所描述的那样here , requestCode必须是16位,表示范围是从065535。所以 request 的值是无效的(它是负数并且也超出了边界范围)。并使用它会导致此错误:

java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode

虽然我可以使用任意有效整数,但在应用程序维护/开发期间可能会违反其唯一性。有没有办法解决这个问题?

最佳答案

您的值为负数,但范围仅为正数。 这个错误可能是因为这个原因

关于android - 使用 "id"作为来自 FragmentActivity 的 "startActivityForResult"的 requestCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54644495/

相关文章:

Android:如何构建多级选项卡

android - 尽管覆盖了 onSaveInstanceState, fragment 的包在 onCreate 中为 null

android - RecyclerView中如何实现StartActivityForResult

java - 何时扩展 RecyclerView.Adapter 以及它如何工作?

java - 调用 setContentView(R.layout.activity_main); 时应用程序崩溃第二次

android - 如何在android中获取谷歌帐户个人资料照片?

android - 如何获取动态添加的单选按钮的选定索引

java - 空对象引用上的 android.content.Context.getPackageName()

android - Textview 中 HTML 内容的高度 - Android

java - 安卓工作室 : change from startActivityForResult to registerForActivityResult