2010-12-29 12 views
5

Ho una schermata piuttosto semplice con un paio di widget EditText e un pulsante. Nell'emulatore, quando faccio clic sul widget EditText, viene visualizzata una tastiera virtuale. Tuttavia, non riesco a liberarmene. Fare clic su uno spazio vuoto sullo schermo non lo fa andare via. Solo facendo clic sul tasto di ritorno virtuale o sul pulsante Indietro dell'hardware, questo scompare.Perché la tastiera virtuale non scompare?

Non ho un vero telefono Android a portata di mano, quindi questo è solo un emulatore o sarà come questo sul dispositivo reale. Se lo è, cosa posso fare per far sparire la tastiera virtuale, quando clicco altrove nel modulo?

risposta

3

Fare clic sul pulsante Indietro. La tastiera è un'attività. Non c'è un modo semplice per rimuovere la tastiera quando si fa clic su un'area casuale dello schermo.

+0

fare: gli utenti Android noti in generale che questo è il modo di rimuovere la tastiera? – AngryHacker

+0

Per quanto ne so, si. – Falmarri

+0

@AngryHacker - "Gli utenti Android sanno in generale che questo è il modo per rimuovere la tastiera?" Il mio HTC Desire ha un tasto/tasto sulla tastiera virtuale con un'icona della tastiera e una "freccia in giù" che lo nasconde quando viene premuto. Sospetto che questo faccia lo stesso del pulsante Indietro del telefono. – Squonk

2

Penso che nell'emulatore è possibile premere ESC per nascondere la tastiera. Su un dispositivo reale c'è un pulsante Nascondi sulla tastiera o puoi premere altrove nell'interfaccia utente. È così che funziona sul mio HTC Desire S comunque.

0

Ho il Galaxy S2 che esegue Andriod 2.3.6.
Avevo problemi con la tastiera che non si spostava dopo aver inserito il testo necessario durante l'accesso ai siti Web. Ho scoperto che premere il pulsante di ritorno dell'hardware toglie la tastiera virtuale. Ma occasionalmente ci vorrà il browser web indietro di una pagina. Il che è frustrante, perché poi devo reinserire le informazioni di accesso per qualsiasi sito web che sto collegando. Speriamo che Android 4.x abbia risolto alcuni di questi problemi di glitch.

0

È possibile raggiungere questo obiettivo facendo le seguenti operazioni:

  1. rendere la vista padre (visualizzare il contenuto della vostra attività) cliccabili e focusable aggiungendo i seguenti attributi

    android:clickable="true" 
        android:focusableInTouchMode="true" 
    
  2. implementare un metodo hideKeyboard()

    public void hideKeyboard(View view) { 
         InputMethodManager inputMethodManager =(InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE); 
         inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY); 
        } 
    
  3. Infine , imposta onFocusChangeListener del tuo edittext.

    edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
         @Override 
         public void onFocusChange(View v, boolean hasFocus) { 
          if (!hasFocus) { 
           hideKeyboard(v); 
          } 
         } 
        }); 
    

Source

1

ho vissuto questo problema e ho risolto esso. Questo problema riguarda il valore InputMethodManager.SHOW_FORCED nel mio progetto. Quando apro la tastiera utilizzando SHOW_FORCED, quindi quando provo a chiudere la tastiera, la tastiera non si chiudeva.

Per esempio:

activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_FORCED); 

Se si utilizza sopra modo per aprire la tastiera, si può provare a cambiare SHOW_FORCED valore con SHOW_IMPLICIT valore

Per esempio:

activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);