2010-03-11 4 views
6

Je sais qu'il a été demandé autour, mais je n'ai pas trouvé tout à fait encore la réponse (nouveau pour Android désolé pour l'ignorance)point fort Android élément ListView programme

mon activité de lancement de l'application a un EditText (appelé searchbox), J'ai ListView (désignations) et un Spinner (types)

J'utilise le EditText comme une boîte de recherche, je dois passer la chaîne grâce à une édition personnalisée pour rendre la recherche plus flexible. Après que je match qui contre le plus proche approximation que je trouve dans les « désignations » et ne

designations.setSelection(j); 

Comme prévu, cela définit l'élément souhaité en haut de désignations. Mais je ne peux pas trouver un moyen de le mettre en évidence via le code. Maintenant, je sais que si l'appareil est en mode tactile, la surbrillance d'un élément sélectionné ne se produira pas. Ainsi, les 4 dernières lignes de l'événement OnTextChanged de mon searchbox sont:

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

en vain.

maintenant, je n'ai aucun code sur searchTextChanged (Editable s); Alors, est-ce que quelqu'un pourrait me donner une idée de cela?

~ dh concernant

Répondre

3

départ requestFocus() et peut-être requestChildFocus()

+0

grâce JQ, qui a travaillé (juste en utilisant requestFocus()). Cependant, après avoir lu ceci: http://android-developers.blogspot.com/2008/12/touch-mode.html Je ne pense pas que j'implantera la mise en évidence à tous Merci bien, une chose de plus appris aujourd'hui –

2

Avez-vous essayé le réglage de la View réelle à choisir?

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