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

标签 android layout view

咕噜……

我在我的 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/

相关文章:

android - 加速插入Sqlite数据库Android?

java - 如何检测 URL 中文件的真实类型?

android - 即使在提供准确的客户端 ID 后仍获取 'E/TokenRequestor: You have wrong OAuth2 related configurations. Detailed error: INVALID_AUDIENCE'

android - 布局 Google 登录按钮 - Android

android - 有没有办法在android 2.1中不使用动画来旋转按钮

android - 找不到 View 的符号变量(Android Studio)

java - 如何解决 HttpURLConnection 上的 NullPointerException?

java - 如何修复“android相对布局中的某些小部件未出现”

sql - 为数据库创建同义词/更改数据库 View 指向

html - 为什么在将内容插入 Div 容器时我的布局会中断 (HTML CSS)