** SOLVED **** SOLUTION IN BELOW POST ******* SOLUTION IN BELOW POST ******* **
Classmate's i get a headcache to how resolve to remove duplicate data in a listview with firebase. I need only 1 item data to show in listview. Showing to example in screen shot
Actual Code:
ArrayList<ShowCliente> myList = new ArrayList<>();
final ArrayAdapter<ShowCliente> arrayAdapter = new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1, myList);
newListView.setAdapter(arrayAdapter);
gDatabase.child("cliente").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
ShowCliente show = dataSnapshot.getValue(ShowCliente.class);
myList.add(show);
//myList.clear();
//*********************************
arrayAdapter.notifyDataSetChanged();
checkEmpty();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Last trying code: This my attemps on this day to resolve this problem, any Don't work, post it to you knowledge :(
//*************************************23/03/2018 **** **************** ATTEMP 1
//VARIABLES
ArrayList<ShowCliente> myList = new ArrayList<>();
List<ShowCliente> myShow = new ArrayList<>();
ArrayList<ShowCliente> mList1 = new ArrayList<>(new HashSet<ShowCliente>(myList));
//HashSet<ShowCliente> myHash = new HashSet<>();
//LEE TODOS DATOS DE LOS CHILD DE LA BASE DE DATOS
ShowCliente show = dataSnapshot.getValue(ShowCliente.class);
//DISMINUIR A 1 LOS CLIENTES REPETIDOS EN LISTA
Iterator<ShowCliente> iteShow = myList.iterator();
while(iteShow.hasNext()){
ShowCliente ite = iteShow.next();
if(ite.equals(show)) iteShow.remove();
}
myList.add(show);
//ShowCliente key = dataSnapshot.getKey();
//mKeys.add(key);
arrayAdapter.notifyDataSetChanged();
checkEmpty();
//****************************************************************** ATTEMP 2
for(DataSnapshot shot : dataSnapshot.getChildren()){
ShowCliente show = shot.getValue(ShowCliente.class);
String compare = String.valueOf(show.getRazonsoc());
if(show.getRazonsoc() != compare){
myList.add(show);
}
}
//****************************************** ATTEMP 3
ShowCliente show = dataSnapshot.getValue(ShowCliente.class);
//myList.clear();
myList.add(show);
if(myList.indexOf(show) == myList.lastIndexOf(show)){
myList.clear();
}
arrayAdapter.notifyDataSetChanged();
checkEmpty();
//************************************** ATTEMP 4
ShowCliente show = dataSnapshot.getValue(ShowCliente.class);
myShow.add(show);
HashSet<ShowCliente> hashSet = new HashSet<>();
hashSet.addAll(myShow);
myShow.clear();
myShow.addAll(hashSet);
//************************************ ATTEMP 5
for(DataSnapshot shot : dataSnapshot.getChildren()){
ShowCliente show = shot.getValue(ShowCliente.class);
String value = show.getRazonsoc();
stringList.clear();
stringList.add(value);
}
Gratefully for your comments and solutions