ListView
funciona basándose en los datos subyacentes en el Adapter
. Con el fin de despejar el ListView
que tiene que hacer dos cosas:
- borrar los datos que el aparato del adaptador.
- actualizar la vista llamando
notifyDataSetChanged
Por ejemplo, ver el esqueleto de SampleAdapter
a continuación que extiende el 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;
}
}
Aquí tienes la ArrayList<String> data
como los datos para su adaptador. Si bien es posible que no sea necesario utilizar ArrayList, tendrá algo similar en el código para representar los datos en su ListView
A continuación, proporcione un método para borrar estos datos, la implementación de este método es borrar la estructura de datos subyacente
public void clearData() {
// clear the data
data.clear();
}
Si usted está usando alguna subclase de Collection, tendrán clear() método que se puede utilizar como anteriormente.
Una vez que tenga este método, al que desea llamar clearData
y notifyDataSetChanged
en su onClick
por lo tanto el código para onClick
se verá algo como:
// listView is your instance of your ListView
SampleAdapter sampleAdapter = (SampleAdapter)listView.getAdapter();
sampleAdapter.clearData();
// refresh the View
sampleAdapter.notifyDataSetChanged();
dinámicamente pasar getCount, para borrar pasar cero como getCount – Abhi
listview.setAdapter (null); –
Gracias Abhi, eso realmente ayudó. Anulando el método getCount .... – slodeveloper