BlackBerry AutoCompleteField - как принять только часть существующей строки - PullRequest
0 голосов
/ 07 декабря 2011

AutoCompleteField предлагает список строк на выбор, но я не могу найти способ ввести только часть существующей строки.
Например: в примере AutoCompleteFieldDemo у нас есть поле 'month'. Когда мы введем 'ju' в это поле, у нас будет список доступных строк 'June' и 'July'. Когда вы нажимаете «Enter» - весь «июнь» или «июль» выбирается и принимается. При нажатии кнопки «Назад» - поле полностью очищается.
Вопрос в том, как принять 'ju' в качестве последней строки для этого поля и перейти к следующему элементу управления? Это то, на что не способен стандартный элемент управления?

P.S. На самом деле вопрос дубликат моей темы здесь .

1 Ответ

1 голос
/ 20 сентября 2012

Вот решение, после попытки в течение нескольких часов ... и безуспешного поиска на форумах я нашел это решение:

final AutoCompleteField autofield = new AutoCompleteField(list){
            public void fieldChanged(Field field,int context){
                super.fieldChanged(field, context);
                if (flag){
                    list.clear();
                    String strings_input[] = new String[1];
                    strings[0] = getEditField().getText();
                    list.addDataSet(0, strings_input, "blah blah",BasicFilteredList.COMPARISON_IGNORE_CASE);
                    list.addDataSet(1, strings_months, "blah blah 2",BasicFilteredList.COMPARISON_IGNORE_CASE);   
                }
            }

            public void onSelect(Object selection, int type){
                 flag = false;
                 super.onSelect(selection, type);
                 getEditField().setText(((BasicFilteredListResult)selection)._object.toString());
                 flag = true;
             }
        };  

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

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...