在我的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。救命?!谢谢!