我在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的设计器中创建如上所示的类没有错误?
答案 0 :(得分:1)
您无法使用这些类,因为创建B
的实例首先需要引用A
。您可以在B
中创建static
班A
并使用:
<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"
.../>
这里最重要的是B
是static
嵌套类,而不仅仅是内部类。如果您没有外部类的实例,则无法实例化内部类,在您的情况下为A
。