Eclipse不显示我的自定义属性(attrs.xml)

时间:2011-07-04 20:43:07

标签: android xml eclipse custom-attributes

使用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 )。
这是个错误?提交自定义属性的步骤是什么? 或者我错了?

谢谢。 卢西亚诺。

2 个答案:

答案 0 :(得分:2)

我刚刚重启了Eclipse,它运行了! :d

答案 1 :(得分:0)

要允许Android Developer Tools与您的视图互动,您必须至少提供一个以ContextAttributeSet对象作为参数的构造函数。此构造函数允许布局编辑器创建和编辑视图的实例。

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
}

isInEditMode

的详细信息