请帮我解决我的问题。我试图创建一个具有一些额外功能的按钮。但是当我扩展类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>
答案 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" />