Элемент Android ListView выделяется программно - PullRequest
6 голосов
/ 11 марта 2010

Я знаю, что об этом спрашивали, но я еще не нашел вполне ответа (новичок в Android, так что извините за невежество)

Запуск моего приложения Activity имеет EditText (называемый searchbox), ListView (обозначения) и Spinner (типы)

Я использую EditText в качестве окна поиска, я должен передать строку через пользовательское редактирование, чтобы сделать поиск более гибким. После этого я сопоставляю это с ближайшим приближением, которое я нахожу в «обозначениях», и делаю

designations.setSelection(j);

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

СЕЙЧАС, я знаю, что если устройство находится в сенсорном режиме, выделение выбранного элемента не произойдет. Итак, последние 4 строки события onTextChanged в моем окне поиска:

        designations.setFocusable(true);            
        designations.setFocusableInTouchMode(true);
        if (match==true)      designations.setSelection(j);
        if (st.length()==0)   designations.setSelection(0);

безрезультатно.

Теперь у меня нет кода для afterTextChanged в окне поиска (Editable s);

Так может ли кто-нибудь дать мне подсказку по этому поводу?

С уважением ~ Дк

Ответы [ 2 ]

3 голосов
/ 12 марта 2010

проверить requestFocus () и, возможно, requestChildFocus ()

2 голосов
/ 11 марта 2010

Вы пробовали установить фактическое значение View для выбора?

designations.setSelection(j);
designations.getSelectedView().setSelected(true);
...