Ändern Sie Zeile Hintergrundfarbe, während Punkt-touch in ListView
Ich versuche es mal mit BaseAdapter zu zeigen, item in der ListView.
Ich versuche folgenden code in BaseAdapter.
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
//...
convertView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
v.setBackgroundResource(R.drawable.ic_corner_four_click);
break;
case MotionEvent.ACTION_UP:
v.setBackgroundResource(R.drawable.ic_corner_four);
break;
}
return false;
}
});
}
Während der Punkt berührt werden, es ändern hintergrund ic_corner_four_click.
Aber während die Veröffentlichung finger oder verschieben auf andere Artikel, die es gar nicht rechange zu ic_corner_four.
Wie es zu ändern?
InformationsquelleAutor brian | 2012-02-02
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie eine
StateListDrawable
zu definieren, den hintergrund in einem bestimmten Zustand. Finden Sie in der Dokumentation. Wenn Sie sich zu der richtigen Frage können Sie andere sehr ähnliche Fragen. --->Diese eine, zum Beispiel.
view.setSelected(true)
wenn die Ansicht ausgewählt wird.Den Grund für dieses problem ist Ihr
onTouch
Funktion ist immer die Rückkehrfalse
. FürACTION_DOWN
wird der code ausgeführt und die Funktion gibt false zurück. Nun, es wird niemals aufgerufen, wennACTION_UP
. Ändern Rückgabewerttrue
sollte Ihr problem lösen.Müssen Sie den select-Modus in der Liste anzeigen
http://developer.android.com/reference/android/widget/AbsListView.html#CHOICE_MODE_SINGLE