扩展Button类

时间:2014-11-12 14:31:09

标签: android button

请帮我解决我的问题。我试图创建一个具有一些额外功能的按钮。但是当我扩展类Button时,会出现一个渲染问题:"自定义视图GameButton没有使用2或3个参数的构造函数; XML属性不起作用"。我真的不知道问题出在哪里,因为我将所有构造函数添加到我的类GameButton:

package ua.oksana.sendev.tictactoe
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.util.AttributeSet;
import android.widget.*;

public class GameButton extends Button {
private int parentId;
private int cellId;


public GameButton(Context context) {
    super(context);
}
public GameButton(Context context, AttributeSet attrs) {
    super(context, attrs);
}
public GameButton(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}

@TargetApi(Build.VERSION_CODES.L)
public GameButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);
}

public void setParentId(int parentId){
    this.parentId=parentId;
}

public void setCellId(int cellId){
    this.cellId=cellId;
}

public int getParentId(){
    return this.parentId;
}

public int getCellId(){
   return this.cellId;
}

}

和XML:

 <ua.oksana.sendev.tictactoe.tools.GameButton
                    style="@style/cellStyle"
                    android:id="@+id/button99"
                    android:layout_column="3" />

式:

   <style name="cellStyle">
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:buttonStyle">?android:attr/buttonStyleSmall</item>
    <item name="android:layout_weight">1</item>
</style>

1 个答案:

答案 0 :(得分:2)

在按钮xml中添加此行

xmlns:android="http://schemas.android.com/apk/res/android"

如下所示,试试是否有效

<ua.oksana.sendev.tictactoe.tools.GameButton
xmlns:android="http://schemas.android.com/apk/res/android"
                    style="@style/cellStyle"
                    android:id="@+id/button99"
                    android:layout_column="3" />