Zuweisen von ID, um eine Zeile in einem Android-ListView
Ich habe ein ListView. Wenn ein Element in der Listenansicht tippt, lädt es eine Untersicht. Will ich weisen Sie eine ID für jede Zeile der ListView, so kann ich den pass, die ID an die Untersicht. Wie ordne ich eine bestimmte ID für jede Zeile in der ListView?
Hier ist, wie ich bin derzeit laden die ListView:
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, mArrayList));
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier, wie ich das problem gelöst. Ich habe die employee_ids und employee_names von der lokalen SQLite-Datenbank, dann erstellte ich eine ArrayList employeeNamesArray und eine ArrayList employeeIdArray zur gleichen Zeit. So, die employeeIdArray[0] würde passen mit employeeNameArray[0], employeeIdArray[1] entsprechen würde, die mit employeeNameArray[1], etc.
Einmal die ArrayLists erstellt wurden, fütterte ich employeeNameArray in der ListView.
Später, in onListItemClick, ich retreive die position der ausgewählten ListView-Zeile. Diese 'position' wird corrospond auf die position, in die ArrayLists - also, wenn ich wählen Sie die erste Zeile in der ListView wird, wird die position der null, und employeeNameArray[0] entspricht mit employeeIdArray[0]. Ich schnappe mir den coroloating Eintrag aus employeeIdArray und schieben, um die nächste Aktivität mit putExtra.
Hallo Chris, Sie haben bereits die position-id in Ihrem listView implementieren Sie die onListItemClick () - Funktion.
wenn Sie möchten, assing Ihre eigene id verwenden setTag()
Können Sie nicht tun, mit einem standard - ArrayAdapter Sie brauchen, um erweitern die ArrayAdapter überschreiben und die getItemId() Methode und vielleicht auch die hasStableIds() Methode.
Haben Sie dann den Wert true zurück in die hasStableIds-Methode und erstellen Sie Ihre id für das Element in der position, dass Ihre Methode getItemId.
Nachdem er Stunden auf diesem, das einfachste Weg ich gefunden habe, war zu überschreiben bindView auf die adapter, und legen Sie einen tag-Wert mit der Zeile _id auf den Gegenstand - in meinem Fall war es eine Schaltfläche in der ListView-Zeile.