Sto sviluppando su Droid Incredible (e ho testato anche su un emulatore AVD 1.5) e una delle schede nel mio widget schede è costituita da un listview e una riga con un EditText e un Pulsante Invia (per una funzione di chat). Sto usando quanto segue per chiudere la tastiera virtuale dopo aver fatto clic su Invia, ma non funziona. Questo è identico al codice che ho trovato altrove che le persone hanno svitato come corretto.Nascondi tastiera software non funzionante
Vedi qualcosa che mi manca?
// in Button's onClick():
EditText chatTextBox = (EditText) findViewById(R.id.chat_entry);
// Handle button click ...
chatTextBox.setText("");
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(chatTextBox.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
Ho anche provato a cambiare la bandiera su 0. Nessuna fortuna. Qualcuno sa cosa succede ??
**** EDIT **** Ho appena realizzato che inizialmente utilizzavo hideSoftInputFromInputMethod()
anziché hideSoftInputFromWindow()
. Cambiarlo non ha funzionato però ...
Se si mostrerà tastiera con la bandiera 'SHOW_FORCED'then indica che l'utente ha costretto il metodo di ingresso aperto (come da menù di lunga pressatura) in modo che non dovrebbe essere chiuso fino a quando non esplicitamente farlo. [Vedi Documentazione] (http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html#SHOW_FORCED) –
Se hai ** Forced ** mostrato tastiera e vuoi nascondere allora usa il seguente codice 'InputMethodManager imm = (InputMethodManager) mContext.getSystemService (Context.INPUT_METHOD_SERVICE); \t \t imm.hideSoftInputFromWindow (mEditText.getWindowToken(), 0); ' –