Un normale android Spinner farà apparire un elenco di scelte quando si fa clic. Voglio ignorare questo onClick. Quando l'utente fa clic sullo spinner durante determinati stati di errore, desidero visualizzare un messaggio di errore anziché visualizzare l'elenco di scelte. Attualmente, tutto ciò che posso fare è impostare un OnClickListener, ma il suo metodo onClick non mi impedisce di visualizzare l'elenco di opzioni.Come ignorare onClick su Android Spinner?
risposta
Vorrei provare a creare una classe MySpinnerAdapter, che implementa SpinnerAdapter. Nel tuo MySpinnerAdapter, dai un'occhiata al metodo getDropDownView. Credo che sia qui che viene creata la vista popup. È possibile controllare il proprio stato di errore e decidere di restituire una vista diversa (anche se potrebbe essere in un'altra funzione -> controllare la documentazione) ...
In ogni caso, questa risposta non è una copia-incolla. Sto solo cercando di sputare alcune nuove idee
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;
}
}
}
estende da Spinner e ignorare performClick() in questo modo:
@Override
public boolean performClick() {
if(errorOccured) {
// show validation message
return true; // the event is handled by ourselves
}
else {
return super.performClick(); // show spinner dialog
}
}
Vedi fonti per ulteriori dettagli. Spero che questo ti aiuti.
impostando un onTouchListener
e nel metodo onTouch
visualizzare il popup e tornare true
a consumare l'evento e impedirgli di propagazione alla vista (Spinner in questo caso) prova.
spinner.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// display your error popup here
return true;
}
});
Questo dovrebbe interrompere l'"elenco a discesa" dall'apparire.
Edit: dimenticato di dire che si possa fare il vostro errore di controllo dello stato nel metodo onTouch
pure, in modo da non disattivare completamente la filatrice.
Le osservazioni sotto la modifica sono ciò che ho finito per andare con. Minima intrusione per ottenere una limitazione del controllo dei frammenti incrociati in stati diversi. – James
- 1. Come catturare l'evento onClick in Android per uno spinner
- 2. Come tornare al valore predefinito in spinner onclick?
- 3. Come creare uno spinner di date su Android
- 4. Come colorare e allineare l'oggetto spinner su Android?
- 5. Spinner Android - Come selezionare la lista predefinita su nessuna
- 6. Valori impostati spinner Android
- 7. Ascolto onClick su un'immagine ListView - Android
- 8. Android: Layout spinner personalizzato
- 9. Android: due Spinner onItemSelected()
- 10. metodo onClick non chiamato su Android
- 11. Richiesta spinner Android
- 12. Android Non ignorare AlertDialog dopo aver fatto clic su PositiveButton
- 13. Dimensioni spinner Android molto grandi
- 14. @Onclick annotazioni Android?
- 15. Come aggiungere l'immagine per Spinner Android
- 16. come aggiungere l'articolo in Spinner Android
- 17. come creare uno spinner modificabile in Android?
- 18. Ottieni Android per trattare l'HTML Select come Android Spinner?
- 19. Android SearchView onclick
- 20. Spinner Android con sottolineatura appcompat
- 21. Android - Rimuovi Spinner Dropdown Arrow
- 22. Gravity spinner Android non funziona
- 23. Modifica layout/design spinner Android
- 24. Pulsante Android onclick override
- 25. TextView - OnClick - Android
- 26. Pulsante Android Onclick
- 27. Android: EditText NextFocusDown non trigger Spinner
- 28. come usare lo spinner
- 29. Android ottiene tutti i paesi su spinner matrice
- 30. Spinner imbottitura interna è più grande su Android 6.0.1
migliore e più semplice – Entreco