Red de conocimiento del abogados - Ley de patentes - Cómo agregar un estado de botón personalizado

Cómo agregar un estado de botón personalizado

lt;?xml?version="1.0"?encoding="utf-8"?gt;

lt;resourcesgt;

lt;declare-styleable?name="comida" gt;

lt;attr?name="state_fried"?format="boolean"?/gt;

lt;attr?name="state_baked"?format="boolean" ?/gt;

lt;/declare-styleablegt;

lt;/resourcesgt;

public?FoodButton(Context?context,?AttributeSet?attrs) ?{

super(context,?attrs);

}

privado?static?final?int[]?STATE_FRIED?=?{R.attr .state_fried};

privado?static?final?int[]?STATE_BAKED?=?{R.attr.state_baked};

privado?boolean?mIsFried?=?false;

privado?boolean?mIsBaked?=?false;

público?void?setFried(boolean?isFried)?{mIsFried?=?isFried;}

public?void?setBaked(boolean?isBaked)?{mIsBaked?=?isBaked;}

¿Entonces?override?function?"onCreateDrawableState":

@Override

protected?int[]?onCreateDrawableState(int?extraSpace)?{

final?int[]?drawableState?=?super.onCreateDrawableState(extraSpace? ?2);

if?(mIsFried)?{

mergeDrawableStates(drawableState,?STATE_FRIED);

}

if?(mIsBaked)?{

mergeDrawableStates(drawableState,?STATE_BAKED);

}

return?drawableState;

}

Archivo?"res/drawable/ food_button.xml":

lt;?xml?version="1.0"?encoding="utf-8"?gt;

lt;selector?xmlns:android="/ apk/res/android"

xmlns: app="/apk/res/com.mydomain.mypackage"gt;

lt; item

aplicación: state_baked="verdadero"

>aplicación:state_fried="false"

android:drawable="@drawable/item_baked"?/gt;

lt;item

aplicación:state_baked= "falso"

aplicación:state_fried="true"

android: drawable="@drawable/item_fried"?/gt;

lt;item

aplicación: state_baked="true"

aplicación: state_fried="true"

android: drawable="@drawable/item_overcooked"?/gt;

lt; elemento

aplicación: state_baked="false"

aplicación: state_fried="false"

android: drawable="@drawable/ item_raw"?/gt;

lt;/selectorgt;