Un android normal Spinner aparecerá una lista de opciones cuando se haga clic. Quiero anular esto enClick. Cuando el usuario hace clic en la ruleta durante ciertos estados de error, quiero mostrar un mensaje de error en lugar de mostrar la lista de opciones. Actualmente, todo lo que puedo hacer es establecer un OnClickListener, pero su método onClick no me permite evitar que aparezca la lista de opciones.Cómo sobrescribir OnClick en Android Spinner?
Respuesta
Intentaré crear una clase MySpinnerAdapter, que implemente SpinnerAdapter. En su MySpinnerAdapter, eche un vistazo al método getDropDownView. Creo que es donde se crea la vista emergente. Puede verificar su estado de error y decidir devolver una vista diferente allí (aunque podría estar en otra función -> consultar la documentación) ...
De todos modos, esta respuesta no es de copiar y pegar. Sólo tratando de escupir algunas nuevas ideas
public class yourActivity extends Activity
{
private class MySpinnerAdapter implements SpinnerAdapter
{
// There are quite a lot of methods you need to implement...
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent)
{
// Check your error states here
if(<we have some kind of error>)
return specialErrorView // you get the idea
// return the default view with options
return normalView;
}
}
}
se extiende desde Spinner y anular performClick() así:
@Override
public boolean performClick() {
if(errorOccured) {
// show validation message
return true; // the event is handled by ourselves
}
else {
return super.performClick(); // show spinner dialog
}
}
Ver las fuentes para obtener más detalles. Espero que esto ayude.
establecer un onTouchListener
y en el método onTouch
mostrar su emergente y volver a consumir true
el evento y evitar que se propague a la vista (Spinner en este caso) intento.
spinner.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// display your error popup here
return true;
}
});
Esto debería evitar que aparezca la "lista desplegable".
Editar: se olvidó de mencionar que podría hacer su verificación de estado de error en el método onTouch
también, por lo que no desactive completamente la ruleta.
Las observaciones en la edición son a lo que terminé yendo. Intrusión mínima para obtener alguna limitación de control de fragmentos cruzados en diferentes estados. – James
- 1. ¿Cómo volver al valor predeterminado en spinner onclick?
- 2. android spinner performClick onItemSelected
- 3. Cómo agregar título en Spinner en android
- 4. cómo crear spinner editable en android?
- 5. onclick listener en android
- 6. Android: dos Spinner onItemSelected()
- 7. desactivación de Spinner en Android
- 8. Android spinner cerrar
- 9. Android Spinner selection
- 10. Android Spinner Ítem seleccionado
- 11. Android: Open Spinner desde el botón
- 12. Android - configurar Spinner utilizar matriz
- 13. Cómo hacer un spinner de fecha en Android
- 14. Android: Disposición de Spinner personalizada
- 15. Texto de medio corte en Spinner Android
- 16. Android singleTap/OnClick en WebView
- 17. Botón Android onclick anular
- 18. Android onClick método
- 19. ¿Cómo hacer una lista emergente como un spinner sin spinner en Android?
- 20. Android onClick bloqueando onFling
- 21. Botón de Android Onclick
- 22. Poblar Spinner dinámicamente en android desde editar texto
- 23. ¿Poner los valores ENUM a android spinner?
- 24. Etiqueta de ajuste de Android a spinner
- 25. cómo sobrescribir el título predeterminado con título personalizado en android
- 26. Android - Establecer punto de inicio de Spinner
- 27. Android Imagebutton cambiar imagen OnClick
- 28. Cómo capturar evento onclick en EditarTexto discapacitados en Android App
- 29. android button setPressed after onClick
- 30. Android/Phonegap - onClick() no funciona
mejor y más simple – Entreco