ausgelöst Dies ist die Situation: Ich habe eine Listview mit einigen Elementen. In jedem Element befinden sich zwei anklickbare Ansichten, die nur nach Benutzerklicks im übergeordneten Element angezeigt werden.Onclicklistener für eine Kind-Ansicht in einem ListView-Element nur zum zweiten Mal nach Onitemclicklistener
Es funktioniert wie folgt:
productList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(final AdapterView<?> parent, final View view, final int position, long id) {
TextView txtAdd = (TextView) view.findViewById(R.id.txt_add_units);
txtAdd.setVisibility(View.VISIBLE);
txtAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
...
}
});
TextView txtRemove = (TextView) view.findViewById(R.id.txt_remove_units);
txtRemove.setVisibility(View.VISIBLE);
txtRemove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
...
}
});
basketProductsListAdapter.notifyDataSetChanged();
}
});
Das erste Mal, wenn ein Listview-Element geklickt wird, seine txtAdd und txtRemove Kind Ansichten gezeigt und dann, wenn der Benutzer sie anklickt, Code innerhalb ihrer OnClickListener ausgeführt wird.
Das Problem erscheint nur im ersten Listenansicht Element. Beim ersten Klicken wird txtAdd und txtRemove angezeigt, ABER IM ERSTEN MAL klickt der Benutzer auf die untergeordneten Ansichten, der ItemClickListener seiner Eltern wird erneut ausgelöst, und die untergeordneten Ansichten (txtAdd und txtRemove) empfangen den clickListener nicht. Folgende Zeiten funktionieren perfekt. Das Seltsame ist, dass es nur beim ersten Eintrag im listView passiert.
Irgendwelche Ideen? Danke im Voraus!
erstellen Linearlayout Hinzufügen, setzen Sie Ihre 'txtAdd' und' txtRemove 'innerhalb dieses linearen Layouts, behalte Linearlayout als 'visiblity = gone'. Klicken Sie im Listenelement auf visibility dieses linearen Layouts auf "sichtbar" programmatisch. Dann Trigger Ereignisse für 'txtAdd' und' txtRemove' auslösen. – Vikrant
Das ist ziemlich das gleiche, was ich tue, ist es nicht @Vikrant? Danke trotzdem – Hugo
Müssen 'android: demcendantFocusability =" blocksDescendants "' zu Ihrem Listview XML hinzugefügt werden? – Vikrant