Wie setOnTouchListener für ein Element in einem ListView
Möchte ich, um einen Gegenstand aus meinem ListView und setOnTouchListener für das folgende ist mein code, aber ich bin unfähig es richtig zu stellen.
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View selectedView,
int position, long id) {
Log.d("ON ITEM CLICK...", " ON ITEM CLICK... "+ position);
listView.getChildAt(position).setOnTouchListener(HorizontalListActivity.this);
ViewHolder viewHolder =(ViewHolder)selectedView.getTag();
viewHolder.ivThumbnail.setOnTouchListener(HorizontalListActivity.this);
}
});
Der Grund, warum ich wollte, um auf das Element zugreifen, ist, dass ich möchten, ziehen Sie es auf dem Bildschirm.
Gibt es eine bessere Weise, das zu tun, was ich will?
- versuchen Sie, ändern
listView.getChildAt(position).setOnTouchListener
zuselectedView.setOnTouchListener
oder ingetView
Methode, wenn init dasivThumbnail
mitsetOnTouchListener
- das funktioniert nicht, entweder, onTouch nicht ausgelöst
setOnTouchListener
bedeutet, dont auslösen der onTouchevent, nur legen Sie den Hörer, nur es beim nächsten mal sein ontouched, ruft dieOnTouchListner
interface-Methode.- Ive versucht, berühren Sie zwei mal, es funktioniert immer noch nicht..
- Ich habe Probleme mit den touch-Ereignisse vor und das Problem war, dass die übergeordnete Ansicht war, Sie zu stehlen, so dass das Kind niemals sah. Also in deinem Fall die
ListView
ist Diebstahl, die touch-Ereignisse, so dass dieListView
Elemente nie bekommen Sie. Leider habe ich keine Vorschläge, wie es zu beheben. - können Sie versuchen, diese: listview-dont setzen
setOnItemClickListener
, und in IhremgetView
Methode in-adapter, setzen Sie die Ansicht, die Sie erhalten möchten-event mit der MethodesetOnClickListener(...)
, vermeiden Sie die VerwendungsetOnTouchListener
. - Wie die Ihre sind die Schaffung der Listenansicht. Ich denke, dass Ihr mit der Erweiterung des Basis-adapter, Um die Liste anzuzeigen. So anstatt, den Hörer mit auf der Liste anzuzeigen, stellen Sie den on Klick-listener für das widget, dass Sie in der Liste Ansicht.
- rahatekar:das löst nicht das problem entweder
- Können Sie sagen, welche widgets, die Sie verwenden Innerhalb der Listview.
- Es ist ein custom-widget, aber wie auch immer, wie können wir eine touch-listener für die Elemente eines beliebigen widget?
- ich habe Gesicht, gleiche problem . haben u got irgendeine Lösung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin in der gleichen situation, und habe etwas gefunden, das könnte funktionieren, aber ich habe nicht die Zeit, um es auszuprobieren. Die Grundidee ist, die Absendung der touch-event auf das Kind, wie Sie es Tat, mit getChildAt. Sie hören für touch-Ereignisse in der Listenansicht, und einfach, wenn Sie berührt die Ansicht, die Sie interessiert sind in, Versand der touch-event, um es zu umgehen: