Ho una domanda che dovrebbe essere semplice, ma non riesco a risolverlo.Dare i tag degli elementi listviewview senza arrayadapter personalizzato
Sto usando DragSortListView. Voglio assegnare a ciascun elemento listview un tag con la sua posizione originale. Quando l'utente ha finito di riordinare, voglio restituire una stringa con ID originali (come 2,3,4,1 se l'utente ha spostato il primo oggetto all'ultimo posto). Se un elemento viene eliminato, vorrei anche conoscere l'ID originale.
Ecco il mio codice.
DragSortListView mainListView = (DragSortListView) findViewById(R.id.list_pages);
String[] names = settings.getString("pages", "Error,error").split(",");
ArrayList<String> list = new ArrayList<String>(Arrays.asList(names));
adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.row, list);
mainListView.setAdapter(adapter);
DragSortController controller = new DragSortController(mainListView);
...
Ora ho pensato che sarebbe stato meglio per scorrere tutte le voci e dare loro i tag con i loro id originali. Sto cercando di ciclo tra gli elementi utilizzando qualcosa di simile
for (int i = 0; i < mainListView.getCount(); i++)
{
View v = mainListView.getChildAt(i);
TextView tx = (TextView) v.findViewById(R.id.text);
tx.setTag(i);
}
Tuttavia questo listview sembra essere vuota, anche se l'adattatore è stato impostato.
Non riesco a utilizzare un ArrayAdapter personalizzato, poiché l'app si arresta in modo anomalo quando un elemento viene rilasciato o trascinato via.
Informazioni aggiuntive: ListView è popolato quando i dati viene restituito da un servizio utilizzando un BroadcastReceiver. Non penso che questo influenzi questo, ma non si sa mai.
La mia domanda:
- Come faccio a memorizzare ogni posizione originale list-oggetti, in modo che io possa accedere in un secondo momento?
Grazie in anticipo!
Davvero utile risposta, grazie Ahmad! Poiché questo è un adattatore diverso, ha comunque cambiato il mio 'setDropListener()' e 'setRemoveListener()', ma lo capirò. Non appena lo farò, lo segnerò come completo :) Grazie ancora! –
Fatto! Questa risposta è stata perfetta. Grazie! –