Я хотел бы использовать стандартную кнопку как кнопку переключения, но только когда она нажата. Поэтому сначала я заменил стиль по умолчанию на фоновые изображения для нажатия, фокусировки и состояния по умолчанию.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/btn_pressed" /> <!-- pressed -->
<item android:state_focused="true" android:drawable="@drawable/btn_focused" /> <!-- focused -->
<item android:drawable="@drawable/btn_default" /> <!-- default -->
</selector>
Я реализовал оба, onClickListener и OnLongClickListener следующее:
private OnLongClickListener mFireHoldListener = new OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
Log.i(TAG, "Long FIRE");
Button btn = (Button) view;
btn.setPressed(true);
btn.invalidate();
Log.i(TAG, "isPressed: " + btn.isPressed());
return false;
}
};
Если я выполню длинный щелчок, кнопка не изменит свой фон на state_pressed. Как я могу держать кнопку нажатой? Использование переключателя не работает, так как обычная операция щелчка должна быть возможной. Если кнопка нажата в течение более длительного времени, она блокируется.
Большое спасибо