2010-01-01 20 views
8

Ho una ListView ed è possibile utilizzare la tastiera hardware per filtrare gli elementi. Tuttavia, cosa devo fare per i telefoni che non dispongono di una tastiera hardware e solo di una virtuale? C'è un modo per aggiungere un pulsante che quando viene premuto, viene visualizzata la tastiera virtuale?Pulsante per mostrare la tastiera virtuale?

risposta

28

Sono riuscito a passare la tastiera sullo schermo utilizzando il codice riportato di seguito. Spero che questo sia utile a qualcuno.

InputMethodManager inputMgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
inputMgr.toggleSoftInput(0, 0); 
+0

Grazie mille Mark ha funzionato bene ..... – praveenb

+0

Ben fatto è perfettamente ok – Sandy

+0

Ho solo la tastiera e nient'altro, nessun campo di scrittura del testo. ??? – marjanbaz

3

Un suggerimento potrebbe essere quello di utilizzare solo una casella di testo (EditText). In questo modo un utente può in teoria digitare più di un personaggio per restringere la ricerca (e vedere cosa hanno digitato). Per visualizzare la tastiera su schermo, tutto ciò che devono fare è toccare nella casella di testo. Se quella casella era denominata "Cerca" o qualcosa di simile, credo che sarebbe più intuitivo per un utente di un pulsante.

+0

Grazie a questo mi ha indirizzato nella giusta direzione – Tyler

2

C'è una convenzione (per il quale forse qualcun altro in grado di fornire un punto di riferimento — Non ho trovato nulla in fretta) che tenendo premuto il pulsante hardwareMenu porta in primo piano la tastiera virtuale.

Sebbene questo sia apparentemente dipendente dal dispositivo. So che funziona su G1, ma sul mio HTC Hero non funziona sulla schermata principale (anche se HTC sembra aver incasinato alcune scorciatoie, come tenere premuto il pulsante Home).

In ogni caso, so che altre app come ConnectBot menzionano e utilizzano questa convenzione per far apparire la tastiera virtuale.

+2

La pressione lunga sul menu era intesa solo come soluzione di compatibilità di ultima istanza per applicazioni che al momento non conoscevano le tastiere software. Le domande scritte oggi non dovrebbero farvi affidamento. Poiché si tratta di una modalità di compatibilità, mette la tastiera in uno stato diverso da quello che ti aspetti, ad esempio l'utente deve chiuderla esplicitamente anziché seguire le normali regole di eliminazione automatica durante la navigazione nell'interfaccia utente. – hackbod

+0

Grazie per il chiarimento (da un Android non meno!;)). Quindi quale sarebbe la soluzione UI consigliata per la domanda originale? Una casella di testo di ricerca/filtro esplicita come bdls menzionata? –

+0

L'aggiunta di una casella EditText sembra funzionare. Ho trovato una domanda su http://stackoverflow.com/questions/1737009/answer-to-making-a-nice-looking-listview-filter-on-android (la prima risposta) che offre un bel tutorial che sto seguendo . – Tyler

0

Tenere premuto il pulsante di menu sembra non funzionare più su Android 4.0 (IceCreamSandwich). Questo rompe gli elenchi filtrabili in molte applicazioni in cui l'utente non ha più modo di filtrare l'elenco e ha bisogno di eyeball-grep attraverso elenchi lunghi e lunghi.

Problemi correlati