2010-03-27 5 views

risposta

2

Here è il codice sorgente della tastiera virtuale. Se si passa attraverso il codice, si noterà che utilizza una classe Suggest che al suo interno ha dizionari diversi.

Se si desidera aggiungere parole per uno specifico EditText, è necessario aggiungere e rimuovere o modificare la freq di una determinata parola da quei dizionari.

Alcuni problemi:

  • non riuscivo a trovare un modo per ottenere un'istanza del InputMethodService. (Se puoi, rispondi alla mia domanda here)
  • Android consente agli sviluppatori di programmare il proprio InputMethodService. Ne sto lavorando io stesso e la mia implementazione non usa quei dizionari. Quindi la tua funzione non funzionerà con il mio IME.

Suggerirei di utilizzare Auto Complete.

+0

Grazie per le intuizioni, penso che userò completamento automatico. – Wilken

1

Non è possibile aggiungere ulteriori parole a quelle della IME ritrova internamente, tuttavia è possibile fornitura intera vendita i propri completamenti via InputMethodManager.displayCompletions():

http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html#displayCompletions(android.view.View, android.view.inputmethod.CompletionInfo [ ])

Questo è ciò che la visualizzazione automatica del testo completa utilizza per mostrare i suoi completamenti nell'IME, quando l'IME è a schermo intero, quindi non può essere visto. Tieni presente che la tua app ha ancora la responsabilità di mostrare i completamenti stessi, in modo che siano disponibili all'utente se l'IME non è a schermo intero.

(E scusa per la mancanza di documentazione su quel metodo.)

+0

grazie per l'intuizione, immagino che i suggerimenti non siano stati pensati per essere usati in questo modo, quindi per ora rimango con il completamento automatico – Wilken