Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do i add words to the suggestions on top of the soft keyboard

Is there any way to add words to the suggestions in the soft keyboard? For a specific Edittext field i would like to add a list of names to the suggestions that pops up on top of the soft keyboard in android 2.0.

Does anyone know if this is possible?

like image 934
Wilken Avatar asked Mar 27 '10 23:03

Wilken


People also ask

How do I turn off keyboard suggestions?

Go to the keyboard app's settings. Scroll down and look for “Text Correction” or something similar. Tap on “Predictive Text” or “Next-Word Suggestions” to toggle the feature off. Test the keyboard and see if the option is disabled.


2 Answers

Here is the source code of the soft keyboard. If you go through the code, you will see that it uses a Suggest class which inside has different dictionaries.

If you want to add words for a specific EditText you would need to add and remove or change freq of a certain word from those dictionaries.

Some issues:

  • I couldn't find a way to get the InputMethodService's instance. (If you can, please answer my question here)
  • Android allows developers to program their own InputMethodService. I am working on one myself and my implementation doesn't use that dictionaries. So your feature will not work with my IME.

I would suggest using Auto Complete.

like image 67
Macarse Avatar answered Oct 06 '22 00:10

Macarse


You can't add additional words to the ones the IME finds internally, however you can whole-sale supply your own completions via InputMethodManager.displayCompletions():

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

This is what the auto complete text view uses to show its completions in the IME, when the IME is full screen so it can't be seen. Note that your app is still responsible for showing the completions itself, so they will be available to the user if the IME is not full screen.

(And sorry about the lack of documentation on that method.)

like image 27
hackbod Avatar answered Oct 05 '22 23:10

hackbod