首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取"java.lang.IllegalArgumentException:目标id == 0“的aftel调用导航

获取"java.lang.IllegalArgumentException:目标id == 0“的aftel调用导航
EN

Stack Overflow用户
提问于 2020-09-03 14:26:12
回答 1查看 97关注 0票数 0

我得到了一个

代码语言:javascript
运行
复制
java.lang.IllegalArgumentException: Destination id == 0 can only be used in conjunction with a valid navOptions.popUpTo

当我调用以下代码时:

代码语言:javascript
运行
复制
override fun onNavigateItemClicked(rIdNavAppSectionItem: Int) {
        findNavController().navigate(rIdNavAppSectionItem)
    }

调试之后,我发现它正在使用rIdNavAppSectionItem == 0调用导航。

那么,我的的来源是什么?

我正在从array.xml读取资源I,所有get调用都会返回0。

我的res/value/array.xml是:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- Notice that the android:id value does not include the plus sign in the ID reference,
     because the ID already exists, as defined in the ids.xml -->

    <integer-array name="main_nav_list">
        <item>@id/nav_weighing</item>
        <item>@id/nav_water_intake</item>
        <item>@id/nav_pill_remainder</item>
    </integer-array>

</resources>

我的res/value/ids.xml是:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<!-- https://developer.android.com/guide/topics/resources/more-resources#Id -->

<!-- Defines a unique ID. Takes no value, only attributes. -->
<resources>

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

    <item type="id" name="nav_weighing" />
    <item type="id" name="nav_water_intake" />
    <item type="id" name="nav_pill_remainder" />

    <item type="id" name="nav_weight_input" />
    <item type="id" name="nav_water_intake_input" />

</resources>

我的电话就像:

代码语言:javascript
运行
复制
mRootView.context.resources.getIntArray(R.array.main_nav_list)

返回一个漂亮的0!!数组的

您知道为什么没有初始化这些ids吗?

EN

回答 1

Stack Overflow用户

发布于 2020-09-03 14:26:12

我可以在写问题的时候解决我的问题:

我不知道为什么,但我以前也遇到了一些类似的错误。

并用下面的绘图来解决我过去的问题:Integer array of resource ids returns 0

所以我复制我自己:

代码语言:javascript
运行
复制
val navigations: TypedArray = mRootView.context.resources.getTypedArray(R.array.main_nav_list)

在for索引期间:

代码语言:javascript
运行
复制
val itWantsToGetAnException: Int = 0
val navigate: Int = navigations.getResourceId(index, itWantsToGetAnException)

使用后:

代码语言:javascript
运行
复制
navigations.recycle()

不会再有0岁了!)

祝你今天愉快!!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63725696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档