2012-11-08 11 views
7

Sto utilizzando un'animazione di spinner di caricamento con un set di elementi. Se fai clic al di fuori di esso, dovrebbe scomparire. Qualcuno sa come si fa questo?Nascondere uno spinner di caricamento quando si fa clic all'esterno di esso in Android

Spinner

Ho provato questo. Funziona con EditText. Ma non funziona per Spinner

@Override 
public boolean dispatchTouchEvent(MotionEvent event) { 
    View view = getCurrentFocus(); 
    boolean ret = super.dispatchTouchEvent(event); 

    if (view instanceof EditText||view instanceof Spinner) { 
     View w = getCurrentFocus(); 
     int scrcoords[] = new int[2]; 
     w.getLocationOnScreen(scrcoords); 
     float x = event.getRawX() + w.getLeft() - scrcoords[0]; 
     float y = event.getRawY() + w.getTop() - scrcoords[1]; 

     if (event.getAction() == MotionEvent.ACTION_UP 
&& (x < w.getLeft() || x >= w.getRight() 
|| y < w.getTop() || y > w.getBottom())) { 
      InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.hideSoftInputFromWindow(getWindow().getCurrentFocus().getWindowToken(), 0); 
     } 
    } 
return ret; 
} 

Grazie in anticipo.

+0

Guardare http://stackoverflow.com/questions/8384067/how-to-dismiss-the-dialog-with-click-on-outside-of-dialog/8384124#8384124 – user370305

+1

Ho già controllato questo collegamento . ma sarà possibile per un dialogo ma non per lo spinner. –

+0

Devi controllare il tocco della tua finestra di attività (al di fuori di Spinner). Di cui ho parlato in quella risposta. Controllo – user370305

risposta

0

C'è una soluzione per Dialoglink

Allora perché non si tenta di creare una finestra personalizzata (simple example), che si presenta come un filatore? Crea un file di layout per la tua finestra di dialogo con i pulsanti radio.

Quando l'utente fa clic su un radiobutton, chiamare dialog.dismiss() e fare codice necessario prossimo

+0

Grazie per la risposta. Ho già controllato il link prima del quale hai fornito. –

+0

Il punto si trova nella stilizzazione di 'Dialog' come' Spinner', non nel collegamento. Prova ad usare 'Dialog', renderlo simile a' Spinner' –

1

Quello che ho fatto è stato personalmente per creare un costume AlertDialog con setSingleChoiceItems() a fare la stessa cosa. Quindi ho usato setCanceledOnTouchOutside().

+0

grazie per la risposta. L'ho provato nella mia domanda precedente e ho avuto successo. Ma qui il mio requisito è per spinner. non per un AlertDialog. se sai aiutami pls –

+0

Puoi semplicemente prendere l'azione 'Spinner'' onClick() 'ed eseguire un' AlertDialog' Non vedo cosa sia difficile. – shkschneider

Problemi correlati