0

我正在 Android 中开发应用程序并遇到问题。我有两个类 A 和 B。它们的代码如下(例如):

public class A extends View {
//declaration of constructors
...
    public class B extends Button {
    //declaration of constructors
    }
}

我尝试在设计器的 xml 中添加一个 B 类,但我收到一个错误,它什么也没添加。

<com.example.myproject.A.B
android:is="@+id/B1"
android:layout_wight="100dp"
android:layout_height="100dp"
.../>

什么是可能的错误以及如何使上面显示的类在 xml 设计器中没有错误?

4

2 回答 2

1

您不能使用这些类,因为创建的实例B首先需要引用A。您要么制作B课程staticA使用:

<view
   class="com.example.myproject.A$B"
   android:is="@+id/B1"
   android:layout_wight="100dp"
   android:layout_height="100dp"
/>

或者您重新考虑当前的类层次结构。

于 2013-04-15T11:30:16.653 回答
1

你的代码应该是这样的:

public class A extends View {
//declaration of constructors
...
    public static class B extends Button {
    //declaration of constructors
    }
}

和布局:

<view class="com.example.myproject.A$B"
    android:id="@+id/B1"
    android:layout_wight="100dp"
    android:layout_height="100dp"
    .../>

这里最重要的Bstatic嵌套类,而不仅仅是内部类。如果您没有外部类的实例,则无法实例化内部类,这就是A您的情况。

于 2013-04-15T11:33:17.813 回答