In general, the Eclipse Android plug in is working as expected with auto-complete. However, it is not working for a custom control that I wrote. Basically, the auto complete list is empty other than the default namespace options.
The control inherits from the Button widget and adds some additional text. I have a couple of extra attributes that I use defined as such:
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="SubTextButton" <attr name="sub_text" format="string" /> <attr name="sub_text_size" format="float" /> <attr name="sub_text_color" format="color" /> </declare-styleable> </resources>
otherwise it uses all the standard attributes of the Button widget.
In the layout file I specify the namespace:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res/com.mycompany" ...
and I use the control:
<com.mycompany.SubTextButton android:layout_width="@dimen/status_bar_button_w" android:layout_height="@dimen/status_bar_button_h" android:layout_alignParentRight="true" android:background="@drawable/button_bg" android:text="HCD" android:textColor="@color/static_text" android:textSize="@dimen/font_size_standard" app:sub_text="SET" app:sub_text_size="12.0" />
Everything works fine, but users don’t have the benefit of the auto-complete to see what attributes are available. Ideally, I’d like to see the inherited
Button attributes as well as the custom attributes I’ve defined.
It does not work for me, either, on Eclipse helios with ADT v0.9.7
However, it could be possible (thanks to the
resources xml file and the introspection of the parent class).
I had a (longer than expected) look in the ADT source code (I love open-source), and I think it should work. The method
AndroidContentAssist reads attributes in an
ElementDescriptor and it seems they should be correctly initialized for custom controls thanks to
I found that closing all the Properties views and reopening caused my custom attributes to be shown