2010-03-11 3 views
6

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

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

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

designations.setSelection(j); 

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

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

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

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

сейчас у меня нет кода в searchbox's afterTextChanged (Editable s);

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

рассматривает ~ дк

ответ

3

чек из requestFocus() и, возможно, requestChildFocus()

+0

благодаря JQ, которые работали (только с помощью requestFocus()). Однако, после прочтения этого: http://android-developers.blogspot.com/2008/12/touch-mode.html Я не думаю, что будет осуществлять подсветку на всех Спасибо, хотя, еще одна вещь, узнанная сегодня –

2

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

designations.setSelection(j); 
designations.getSelectedView().setSelected(true); 
Смежные вопросы