2010-11-27 11 views
1

Ich möchte die orange Hervorhebung aktivieren, die beim Berühren einer ListView-Zeile auftritt.Hightlight die ListView-Zeile, wenn ein enthaltenes UI-Element der Zeile berührt wird

Wenn das onclick-Ereignis aus der Zeile selbst generiert wurde, kann ich das highlight anpassen, indem ich den Stil der listview einstelle. In meinem Fall wird das klickende Ereignis jedoch von der darunter liegenden Textansicht generiert, an die ein Ereignis onclick angehängt ist.

Wenn ein Berührungsereignis auftritt, ist Listview nicht bewusst, dass ein Klicken ausgeführt wird. Es erhält kein fokussiertes oder gedrücktes Ereignis.

Gibt es Blasen- oder Capture-Technik, die ich verwenden könnte, wie Flex? Oder irgendeinen Vorschlag/eine Lösung?

Vielen Dank.

Antwort

10
View tempView = null; // Class Variable to temporary store Clicked Row's view 

Methode:

public void onItemClick(AdapterView parent, View v, int position,long id) 
{ 
    listView.setFocusable(true); 
    listView.setSelected(true); 
    v.setBackgroundColor(Color.LTGRAY); // CHANGE COLOR OF SELECTED ROW HERE> 
    selectedId = (int)id; 

    if(tempView != null){ 
     //If row is already clicked then reset its color to default row color 
     tempView.setBackgroundColor(Color.TRANSPARENT); 

    } 
    tempView = v; 

}

Hoffnung, das hilft. Danke :)

+0

Funktioniert gut. Ich wünschte, ich hätte genug Privileg, dich zu wählen. – Bamboo

+0

Danke für die Ergänzung. Sobald ich unter dem gleichen Problem gehe & fand Lösung mein Selbst, teilte es mit der Gemeinschaft .. –

+0

Lieber Piyushnp, Danke für Ihre Hilfe .... Ich bin auch mit dem gleichen Problem konfrontiert. Ich verwende den BaseAdapter zum Aufblasen der Listview. Innerhalb der Listview gibt es 3 Widgets Textview, Edittext und Edittext, diese drei Widgets sind in einer Zeile. Wenn ich auf eine Zeile klicke, werden einige Highlights angezeigt (Farbe muss auf allen drei Widgets angezeigt werden). Um dem Benutzer anzuzeigen, dass Sie diese Zeile ausgewählt haben, wenn er auf eine andere Zeile klickt, wird die vorherige Farbe normal und die nächste ausgewählte Zeile wird Farbe. Ich habe oben versucht, aber meine Anforderung ist nicht erfüllt. –

Verwandte Themen