Я пытаюсь понять, как создать и использовать пользовательское целое состояние кнопки для моего приложения Android. Я нашел ссылку this для создания состояний кнопки boolean (только два возможных значения) и, похоже, работает нормально. Но теперь у меня есть случай, когда я хотел бы иметь возможность множественных состояний, и я бы хотел обозначить их целым числом.Пользовательское целое состояние кнопки (не boolean!)
Вот что я делаю сейчас:
import android.content.Context;
import android.util.Log;
import android.widget.ImageView;
public class MultiStateImageView extends ImageView{
private final static String LOG_TAG = MultiStateImageView.class.getSimpleName();
private static final int[] MULTI_STATE = {R.attr.multi_state};
private final int numStates;
private int state;
public MultiStateImageView(Context context, int numStates){
super(context);
this.numStates = numStates;
state = 0;
}
public void setState(int state){
if(state >= numStates){
Log.e(LOG_TAG, "can't set a state higher than the number available!");
}
this.state = state;
refreshDrawableState();
}
@Override
public int[] onCreateDrawableState(int extraSpace){
final int[] drawableState = super.onCreateDrawableState(extraSpace + 2);
mergeDrawableStates(drawableState, MULTI_STATE);
return drawableState;
}
Проблема заключается в том, что я, очевидно, не используя государственную поле вообще. Как я должен делать это для целочисленного состояния?