如何正确定义自定义XML属性并在开发Android时调用它们?

时间:2011-05-23 06:17:22

标签: android eclipse

在我的attrs.xml中,我有以下

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="GameButtons">         
        <attr name="row" format="integer" />
        <attr name="col" format="integer" />
    </declare-styleable>
</resources>

在我的main.xml文件中,我有以下内容(com.example.helloandroid是清单中定义的包):

<ImageButton
    xmlns:whatever="http://schemas.android.com/apk/res/com.example.helloandroid"
    android:id="@+id/sp11"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:src="@drawable/button_imgs"
    android:background="#ffffffff"
    android:onClick="Selected"
    whatever:row="1"
    whatever:col="1"
/>

在GameButtons.java中,我有:

public class GameButtons extends ImageButton {

    public GameButtons(Context context) {
        super(context);
    }

public GameButtons(Context context, AttributeSet attrs) {
    super(context, attrs);

    TypedArray a = context.obtainStyledAttributes(attrs,
            R.styleable.GameButtons);

    int selected_row = a.getInteger(R.styleable.GameButtons_row,0);
    int selected_col = a.getInteger(R.styleable.GameButtons_col,0);

    check_move (selected_row, selected_col);

    a.recycle();
}

我的问题是......什么时候调用了SugarPackets构造函数?或者如何调用check_move函数?

我不确定我是否正确为ImageButton定义自定义属性。基本上,我想添加两个自定义属性:row和col。我还有onClick的事件处理程序,我有:

GameButtons test = (GameButtons) button;

但它不会调用构造函数。最后,我需要调用check_move并单击ImageButton的row和col。救命?!谢谢!

0 个答案:

没有答案