使用Eclipse,我创建了一个包含自定义组件的简单Android项目(MyTextView,继承自 android.widget.TextView )。 在我创建文件后,在attrs.xml中我向该类添加了一个属性,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MyTextView" >
<attr name="AttributeOne" format="integer"/>
</declare-styleable>
</resources>
我在 main.xml 线性布局中添加了一个对象:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:mt="http://schemas.android.com/apk/res/myprogram.custom"
android:orientation="vertical"
android:layout_height="fill_parent" android:layout_width="fill_parent">
<myprogram.custom.MyTextView
android:text="MyTextView"
android:id="@+id/myTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</myprogram.custom.MyTextView>
</LinearLayout>
当我打开 main.xml 并选择选项卡'Graphical Layout',选择我的组件时,自定义属性不会显示在Eclipse的“属性”选项卡中,而是原始属性出现类继承的属性( android.widget.TextView )。
这是个错误?提交自定义属性的步骤是什么?
或者我错了?
谢谢。 卢西亚诺。
答案 0 :(得分:2)
我刚刚重启了Eclipse,它运行了! :d
答案 1 :(得分:0)
要允许Android Developer Tools与您的视图互动,您必须至少提供一个以Context和AttributeSet对象作为参数的构造函数。此构造函数允许布局编辑器创建和编辑视图的实例。
class PieChart extends View
{
public PieChart(Context context, AttributeSet attrs)
{
super(context, attrs);
}
}
或者如果仍未解决,则可以在自定义视图中执行此操作:
if(!isInEditMode())
{
// Your custom code that is not letting the Visual Editor draw properly
// i.e. thread spawning or other things in the constructor
}
的详细信息