Как я могу удерживать одну кнопку нажатой после нажатия на нее?
Возможный дубликат:
Android. Как сохранить кнопку, отображаемую как PRESSED, до тех пор, пока действие, созданное этой кнопкой, не будет завершено?
У меня есть одна кнопка, и я хочу, когда я нажал ее, чтобы оставаться нажатой (с зеленым цветом на froyo).
Любая помощь?
mycodes_Button = (Button) findViewById(R.id.mycodes);
...
if (saved_Button.isPressed())
{
saved_Button.setFocusable(true);
}
Что-то вроде этого?
Ответы
Ответ 1
Привет, используйте следующий код, который он будет полезен,
mycodes_Button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
mycodes_Button.setPressed(true);
return true;
}
});
Ответ 2
У меня была проблема с кнопкой с настраиваемым фоном, и в итоге я использовал выбранное состояние. Это состояние доступно для всех просмотров.
Чтобы использовать это, вы должны определить пользовательский фон кнопки как список состояний:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="false" android:state_focused="false"
android:state_pressed="false"><bitmap ... /></item>
<item android:state_selected="true"><bitmap ... /></item>
<item android:state_focused="true"><bitmap ... /></item>
<item android:state_pressed="true"><bitmap ... /></item>
</selector>
Затем, чтобы использовать этот фон, предположим, что он находится в /res/drawable/button_bg.xml
в вашем файле макета, вы используете:
...
<Button android:background="@drawable/button_bg" ... />
...
В вашем коде вы можете переключиться на (де-) выбранное состояние в вашем слушателе onClick:
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setSelected(true);
// normal click action here
}
});
Активированное состояние соответствует указанному значению лучше, но доступно только с Android 3.x и выше.
Ответ 3
Будет ли ToggleButton соответствовать вашим потребностям?
Судя по вашим комментариям, кажется, что вы не знаете о режиме Touch. В этом режиме, который по умолчанию используется для большинства вещи, нет фокуса (чего вы пытаетесь достичь) и не выбранных элементов.
Вы можете попытаться выйти из сенсорного режима программно, но я бы не рекомендовал его. После небольшого периода привыкания к нему сенсорный режим даст пользователям гораздо лучший опыт.