内部类中的画布,android
是否可以将活动类中扩展SurfaceView的类作为内部类?大概是这样的:内部类中的画布,android,android,canvas,inner-classes,Android,Canvas,Inner Classes,是否可以将活动类中扩展SurfaceView的类作为内部类?大概是这样的: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fi
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.android.iiProject.Presentation.DrawCanvas
android:id="@+id/SurfaceView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
<view
class="com.yourpackage.YourOuterClass$YourInnerClass"
...
/>
其中,表示是活动类,DrawCanvas是扩展SurfaceView的类,并且从表示活动中调用DrawCanvas对象
我希望这样做,因为我希望能够访问表示活动中可用的方法和变量,我不希望将它们声明为静态以从其他类访问它们,因为这会给我带来很多其他问题。。。!
这样,它在XML文件中为我提供了classNotFoundException
提前非常感谢是的,这是可能的,您只需以与XML不同的方式处理内部类,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.android.iiProject.Presentation.DrawCanvas
android:id="@+id/SurfaceView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
<view
class="com.yourpackage.YourOuterClass$YourInnerClass"
...
/>
引述:
自定义组件在XML中创建为通用视图,而
类是使用完整包指定的。还要注意,内部
我们定义的类是使用NoteEditor$MyEditText引用的
表示法,这是Java中引用内部类的标准方法
编程语言。如果自定义视图组件未定义为
一个内部类,然后您也可以声明该视图
组件,并排除class属性
见,第4点 是的,这是可能的,您只需以与XML不同的方式寻址内部类,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.android.iiProject.Presentation.DrawCanvas
android:id="@+id/SurfaceView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
<view
class="com.yourpackage.YourOuterClass$YourInnerClass"
...
/>
引述:
自定义组件在XML中创建为通用视图,而
类是使用完整包指定的。还要注意,内部
我们定义的类是使用NoteEditor$MyEditText引用的
表示法,这是Java中引用内部类的标准方法
编程语言。如果自定义视图组件未定义为
一个内部类,然后您也可以声明该视图
组件,并排除class属性
见,第4点 非常感谢您的回复,它成功了!但是现在我在引用DrawCanvas时得到了一个classCastException内部类,因为它在XML中声明为通用对象视图,不应该被转换为DrawCanvas?!有问题的句子:DrawCanvas mycanvas=DrawCanvas findViewByIdR.id.SurfaceView;非常感谢您的回复,它成功了!但是现在我在引用DrawCanvas时得到了一个classCastException内部类,因为它在XML中声明为通用对象视图,不应该被转换为DrawCanvas?!有问题的句子:DrawCanvas mycanvas=DrawCanvas findViewByIdR.id.SurfaceView;