ListView
opera in base ai dati sottostanti nel Adapter
. Per cancellare il ListView
devi fare due cose:
- Cancellare i dati impostati dall'adattatore.
- aggiornare la vista chiamando
notifyDataSetChanged
Ad esempio, vedere lo scheletro di SampleAdapter
sotto che estende il BaseAdapter
public class SampleAdapter extends BaseAdapter {
ArrayList<String> data;
public SampleAdapter() {
this.data = new ArrayList<String>();
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return data.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
// your View
return null;
}
}
Qui avete la ArrayList<String> data
come i dati per l'adattatore. Anche se non è necessario utilizzare ArrayList, nel codice sarà presente qualcosa di simile per rappresentare i dati in ListView
Successivamente si fornisce un metodo per cancellare questi dati, l'implementazione di questo metodo è di cancellare la struttura dati sottostante
public void clearData() {
// clear the data
data.clear();
}
Se si utilizza qualsiasi sottoclasse di Collection, avranno clear() metodo che si può usare come sopra.
Una volta che avete questo metodo, si desidera chiamare clearData
e notifyDataSetChanged
sul tuo onClick
così il codice per onClick
sarà simile:
// listView is your instance of your ListView
SampleAdapter sampleAdapter = (SampleAdapter)listView.getAdapter();
sampleAdapter.clearData();
// refresh the View
sampleAdapter.notifyDataSetChanged();
dinamicamente passare getCount, per cancellare passare zero come getCount – Abhi
listview.setAdapter (null); –
Grazie Abhi, questo mi ha davvero aiutato. Sovrascrivere il metodo getCount .... – slodeveloper