2012-04-27 3 views
2

При вводе строки в элементе ввода типа текста в приложении, основанном на веб-просмотре, над виртуальной клавиатурой отображается список возможных слов.Можно ли определить список предложений в приложениях webview?

В моем приложении пользователю не разрешено вводить произвольные слова, а только слова и фразы из базы данных являются законными.

Итак, я хочу установить список слов из приложения phonegap и отключить автоматическое создание этого списка.

В: Возможно ли создать список - и как?

(Это PhoneGap приложение и я тестирую на андроид, но это может быть проблемой для WebView/текстовых полей ввода на разных платформах)

EDIT:
Только что узнал (да, я 'm new для разработки android), можно отключить список предложений с помощью: Настройки/Язык и клавиатура/клавиатура Android/Показать предложения.

Но, конечно, этот параметр должен быть сделан только для приложения, изнутри приложения, без взаимодействия с пользователем и не меняющего ничего вне приложения.

Есть ли шанс сделать это?

EDIT 2:
Вместо того, чтобы отключить список предложений, когда я пытался его использовать. Метод displayCompletions из InputMethodManager звучал многообещающе, поэтому я попытался следующий код:

... 
// data member 
InputMethodManager mInputMethodManager = null; 
... 

    ... 
    // initialized 
    mInputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); 
    ... 

public void showSuggestions(String[] words) { 
    Log.d(TAG, "showSuggestions (in Java!): " + words.length); // yes, this code is executed 
    CompletionInfo[] completions = new CompletionInfo[words.length]; 
    for (int i=0; i<words.length; i++) { 
     completions[i] = new CompletionInfo(i, i, words[i]); // no idea, what the 2 extra integers mean 
    } 
    mInputMethodManager.displayCompletions(mView, completions); 
} 

Метод выполняется всякий раз, когда новый список доступен (после ввода изменен, и сервер ответил на запрос).

Однако ничего не изменилось - встроенный механизм все еще выполняет свою невыгодную работу.

ответ

0

В случае, если существуют разные варианты виртуальной клавиатуры (swype и другие), не может быть списка возможных слов. Поэтому, я полагаю, нет общего решения, не отображающего этот список.

Существует параметр http://developer.android.com/reference/android/widget/TextView.html#attr_android:editorExtras editorExtras, который определяет параметры передаются в реализации метода ввода, но я не уверен, как бы вы использовать его в приложении PhoneGap

Edit:

Я полагаю, вы можете продлить по умолчанию метод ввода и сделать его не показать предложения InputMethod эталонные http://developer.android.com/reference/android/inputmethodservice/InputMethodService.html

Предоставление заказного программного обеспечения Keyboar DS

Если вы заинтересованы в разработке собственных программных клавиатур, мы настоятельно рекомендуем следующие ссылки:

редакторы IME реализованы в виде Android службы. Начните с рассмотрения пакетов Android под названием android.inputmethodservice и android.view.inputmethod, которые можно использовать для реализации пользовательских методов ввода. Приложение примера SoftKeyboard в Android SDK обеспечивает реализацию программной клавиатуры. Технические статьи разработчика Android о методах ввода на экране и создании метода ввода.

нашел его здесь http://e-university.wisdomjobs.com/android/chapter-946-288/handling-advanced-user-input.html

+0

Я не думаю, что поле ввода HTML в WebView может быть сконфигурирован с помощью методов для виджета Android TextView. Во-вторых: я не знал, что могут быть другие клавиатуры, чем установленные по умолчанию. Но настройка только стандартной клавиатуры по умолчанию должна быть в порядке. – Gisela

+0

Извините, я забыл, что это текстовое поле в HTML-странице. Таким образом, единственный способ - проверить/изменить введенный текст самостоятельно в JS – marwinXXII

+0

На полпути. Я реализовал список предложений в JS (datalist HTML5 не работает только с андроидом? - webview). Но как я могу отключить список предложений, предоставляемый клавиатурой по умолчанию? – Gisela

0

Почему бы вам не использовать что-то вроде автозаполнения в JQuery UI.

http://jqueryui.com/demos/autocomplete/

Кроме того, это не слишком сложно, чтобы хлестать это на себя в JavaScript.

http://www.javascript-examples.com/autocomplete-demo/

+0

Да, это возможность. На самом деле я уже это сделал. Оставшаяся проблема заключается в том, что список бесполезных предложений по-прежнему существует, оставляя ценное пространство на экране и предоставляя пользователю неправильный выбор. – Gisela

Смежные вопросы