android - setonlongclicklistener - ¿Cómo puedo mantener presionado un botón después de hacer clic en él?
programacion android pdf 2018 (3)
¿Un ToggleButton adaptaría a sus necesidades?
A juzgar por sus comentarios, parece que no conoce el Modo táctil . En este modo, que es el predeterminado para la mayoría de las cosas, no hay foco (que es lo que está tratando de lograr) y no hay elementos seleccionados.
Podría tratar de salir del modo táctil programáticamente, pero no lo recomendaría. Después de un pequeño período de acostumbrarse, el modo táctil brindará una experiencia mucho mejor a los usuarios.
Posible duplicado:
Androide. ¿Cómo mantengo un botón mostrado como PRESIONADO hasta que la acción creada por ese botón haya finalizado?
Tengo un botón, y quiero que cuando lo presione, se mantenga presionado (con el color verde en Froyo).
¿Alguna ayuda?
mycodes_Button = (Button) findViewById(R.id.mycodes);
...
if (saved_Button.isPressed())
{
saved_Button.setFocusable(true);
}
¿Algo como esto?
Tuve este problema con un botón con un fondo personalizado, y terminé usando el estado seleccionado para esto. Ese estado está disponible para todas las vistas.
Para usar esto, debe definir un fondo de botón personalizado como una lista de estado :
<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>
Luego, para usar ese fondo, digamos que está en /res/drawable/button_bg.xml
en su archivo de diseño, usa:
...
<Button android:background="@drawable/button_bg" ... />
...
En su código puede cambiar al estado (des) seleccionado en su oyente OnClick:
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setSelected(true);
// normal click action here
}
});
El estado activado coincide mejor con el significado previsto, pero solo está disponible desde Android 3.xy versiones posteriores.
Usa el siguiente código Es útil.
mycodes_Button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
mycodes_Button.setPressed(true);
return true;
}
});