在android中的不同xml文件中使用相同的id名称

shi*_*ani 3 xml android

我可以在不同的 xml 文件中的其他布局中使用相同的 id 名称吗???因为我已经做到了这一点,也许是因为我得到了一个空指针异常,并且我对该 xml 的活动没有开始......

Sid*_*ele 5

绝对地。Widget您可以在任意数量的布局中为同一类型使用相同的 ID 。只是同一个布局 XML 中的 ID 不一样。当然,无需讨论是否建议这样做。

让一些开发人员感到困惑的是,我承认,当我开始时,它也让我感到困惑。例如,当在 Activity 中投射 Widget 时,我经常感到困惑,为什么我只有一个匹配的 ID,而我在几个不同的布局中都有相同的 ID。

例如,您唯一需要注意的是考虑以下场景:

我有两个 XML,名为 saylayout_1.xmllayout_2.xml,以及 2 个对应的Activities,名为 sayAct1Act2。现在,两者在两个 XML 中都有Widget相同的 ID,即相同的 ID。TextView( Although I am using this example, this is not hypothetical. This is actually how it is in an application of mine)。这与NullPointer在他的评论中所说的非常矛盾。我认为他的意思是你不能在同一个 XML 中使用相同的 ID。

<TextView
    android:id="@+id/txtFromName"
    style="@style/UserName"
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:ellipsize="marquee"
    android:gravity="top|left|center"
</TextView>
Run Code Online (Sandbox Code Playgroud)

现在,当我在代码中投射此内容时,请查看当我开始输入以下内容时建议中显示的内容findViewById(R.id.txtFrom...)

在此输入图像描述

当您在多个 XML 文件中使用相同的 ID 时,为什么会出现NPE可能是由于对 ID 的含义有些混淆。保持相应的 XML 打开并在投射时检查 ID,然后就可以开始了。如果问题仍然存在,我建议使用 XML 代码、Java 代码和 LogCat 崩溃报告更新您的帖子。

我通过逐字复制 ID 并在投射它时使用与 Widget 实例相同的名称来跟踪这一点。但是,我想这只是我的方式。