Задать вопрос

Как правильно расширять классы виджетов Android? Как это отражается на XML-layout?

Меня не устраивал стандартный функционал виджета Button и я решил добавить к нему одно поле:
package com.some.thing;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.Button;

public class ButtonVar extends Button{
	protected boolean correct = false;
	ButtonVar (Context context){
		super(context);
	}
	ButtonVar (Context context, AttributeSet attrs){
		super(context, attrs);
	}
	ButtonVar (Context context, AttributeSet attrs, int defStyle){
		super(context, attrs, defStyle);
	}
	public void setCorrect (boolean correct){
		this.correct = correct;
	}
	public boolean getCorrect (){
		return this.correct;
	}
}


После этого я подправил xml-layout:
<com.some.thing.ButtonVar
        android:id="@+id/buttonVar1"
        style="@style/ButtonVars"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:text="@string/button_var1_default"
        />

Но выскакивает исключение android.view.InflateException: Binary XML file line на строчке:
<com.some.thing.ButtonVar

Помогите, пожалуйста!
  • Вопрос задан
  • 2842 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@bimeg
Конструкторы публичные должны быть.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы