Android:内部类错误

时间:2013-04-15 11:26:33

标签: java android class extends

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

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

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

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

可能的错误是什么,以及如何在xml的设计器中创建如上所示的类没有错误?

2 个答案:

答案 0 :(得分:1)

您无法使用这些类,因为创建B的实例首先需要引用A。您可以在B中创建staticA并使用:

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

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

答案 1 :(得分: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