2010-03-11 12 views
6

Ich weiß, dass es gewesen ist, fragt herum, aber ich habe nicht ganz die Antwort noch (neu Android so traurig über die Ignoranz)Android Listview-Element Highlight programmatisch

meine app Launch Aktivität hat einen EditText (genannt searchbox) gefunden, ein ListView (Bezeichnungen) und ein Spinner (Typen)

Ich benutze den EditText als ein Suchfeld, ich muss den String durch eine benutzerdefinierte Bearbeitung übergeben, um die Suche flexibler zu machen. Danach habe ich überein, dass gegen die nächste Annäherung ich in ‚Bezeichnungen‘ finden und tun

designations.setSelection(j); 

Wie erwartet, setzt dies das gewünschte Element an die Spitze der Bezeichnungen. Aber ich kann keine Möglichkeit finden, es per Code hervorzuheben.

JETZT weiß ich, dass wenn das Gerät im Touch-Modus ist die Hervorhebung eines ausgewählten Elements nicht auftreten. So sind die letzten 4 Zeilen meiner searchbox des OnTextChanged Veranstaltung sind:

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

ohne Erfolg.

jetzt habe ich keinen Code auf searchbox afterTextChanged (Editierbare s);

also könnte mir jemand einen Hinweis darauf geben?

Grüße ~ AVW

Antwort

3

Check-out request() und vielleicht requestChildFocus()

+0

dank jq, die funktioniert (nur durch request mit()). jedoch nach der Lektüre dieses: http://android-developers.blogspot.com/2008/12/touch-mode.html Ich glaube nicht, dass ich auf allen Dank obwohl die Markierung implementieren, eine weitere Sache, heute gelernt –

2

Haben Sie die tatsächliche View versucht Einstellung ausgewählt werden?

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