从xml布局访问自定义视图
问题描述:
在Android应用程序中,我创建了一个自定义视图,用于扩展View
类。我想在xml布局文件中声明我的类的一个对象,但即使在执行了很多次尝试之后,执行setContentView
调用时应用程序也会意外停止(这就是出现的弹出窗口所示)。
在我的视图类中,在我的MainActivity
文件中声明为public,我有两个构造函数:一个只带有Context
作为参数,另一个带有Context
和AttributeSet
参数。我已经重写了onDraw
函数。
此课程位于我的源代码包中,名称为org.me.myapp
。 在布局文件,我宣布我要插入这样的对象:从xml布局访问自定义视图
<org.me.myApp.MainActivity.myView"
android:id="@+id/View"
android:layout_below="@id/toto"
android:layout_width="300dip"
android:layout_height="100dip"/>
谁能告诉我什么是错?
在此先感谢您花费时间来帮助我。
答
什么亚尔说,你应该扩展View或ViewGroup来创建自定义布局元素,并在布局xml中使用该类名称。不是成员变量它看起来你想要做的。膨胀布局后,您可以访问您的自定义视图;
org.me.myapp.MyView myView = (org.me.myapp.MyView) findViewById(R.id.MYVIEWID);
答
我认为你必须声明你的自定义布局作为一个单独的类,例如:org.me.myapp.MyView,并涉及到它在XML文件中是这样的:
<org.me.myapp.MyView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
...
/>
再次感谢您的回答。现在,它工作... :-) – Zelig 2011-04-02 19:04:04
那么接受它如何? ;)无论您有多少经验值,您都可以将答案标记为正确答案。 – Yar 2011-04-04 09:15:42