gpt4 book ai didi

android - 在 layout/main.xml 中引用内部类 View 时出错

转载 作者:IT老高 更新时间:2023-10-28 13:25:37 27 4
gpt4 key购买 nike

咕噜……

我在我的 Activity 中创建了一个 View 子类作为内部类。在我从我的 Activity 中简单地链接到此 View 之前:

setContentView(new CustomView(this));

没有问题。

但是,现在,我的 View 变得越来越复杂,因此我将其作为 FrameLayout 的一部分,以便我可以将其作为基本 View 并在其顶部添加一个 Spinner 小部件。问题是,当我这样做时,我得到一个错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.grafightscratch.ochemmer/com.grafightscratch.ochemmer.MoleculeTablet}: android.view.InflateException: Binary XML file line #4: Error inflating class com.grafightscratch.ochemmer.MoleculeTablet.MoleculeTabletView
...
Caused by: android.view.InflateException: Binary XML file line #4: Error inflating class com.grafightscratch.ochemmer.MoleculeTablet.MoleculeTabletView
...
Caused by: java.lang.ClassNotFoundException: com.grafightscratch.ochemmer.MoleculeTablet.MoleculeTabletView in loader dalvik.system.PathClassLoader@43b74a28

所以,当我直接链接到它之前,这个 View 有效,但是当我尝试将它作为框架布局的一部分添加到 main.xml 文件中时,我得到了上述错误。我还尝试放入一个布局,仅通过以下方式显示它:

<com.grafightscratch.ochemmer.MoleculeTablet.MoleculeTabletView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/molecule_tablet_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>

没有任何作用。我不断收到 InflateException/ClassNotFoundException 错误。它提示二进制 XML 文件中的“第 3 行”,如果它在谈论 main.xml,那就是我已经三重检查的包声明。

编辑我尝试使这个 View 成为一个单独的类(即不是内部类)并且它有效。经过一番搜索,我发现一些帖子说 xml 标签应该是这样的:

<com.grafightscratch.ochemmer.MoleculeTablet$MoleculeTabletView ...>

即,应使用美元符号将内部类与主类分开。但是,Eclipse 对此表示反对,称其为错误,并拒绝让我在那里使用该角色构建或部署。所以现在的问题变成了:如何引用作为内部类的 View?

最佳答案

对于内部类,语法变为:

<view class="com.grafightscratch.ochemmer.MoleculeTablet$MoleculeTabletView" />

原因是 $ 是 XML 标记中的非法字符。

关于android - 在 layout/main.xml 中引用内部类 View 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2098318/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com