2017-01-14 2 views
0

In Meteor auf, um Liste vom Server onDataAdded Override-Methode ruft wieder bis Liste endet so in, wenn ich Array-Wert an Adapter übergeben wird es immer wieder aufrufen.meteor onDataAdded bekommen Liste, aber nicht in der Lage zu Basis-Adapter

Mein Code:

@Override 
public void onDataAdded(String s, String s1, String s2) { 
    Log.d("onDataAdded",""+s); 
    //lists is collection name 
    if(s.contains("lists")) { 
     arrayList.add(s1) 
     adapter= new customAdapter(this,arrayList); 
     list.setAdapter(adapter) 
    } 
} 

Wenn ich rufe:

adapter= new customAdapter(this,arrayList); 
list.setAdapter(adapter) 

onDataAdded Methode der Meteor-Adapter wieder und wieder, bis seine Reichweite letzten Wert Einstellung ist es eine Möglichkeit, Adapter einmal zu setzen, indem Größe oder irgendeinen anderen Weg bitte vorschlagen.

Antwort

0

Sie sollten den Adapter einmal in der Methode onCreate festlegen und dann die notifyDataSetChanged Methode verwenden, um die adapter über Änderungen im Dataset zu benachrichtigen.

ArrayList<String> arrayList = new ArrayList<String>(); 
CustomAdapter adapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    ... 
    adapter = new CustomAdapter(this, arrayList); 
    list.setAdapter(adapter); 
} 

@Override 
public void onDataAdded(String s, String s1, String s2) { 
    Log.d("onDataAdded",""+s); 

    //lists is collection name 
    if(s.contains("lists")) { 
     arrayList.add(s1); 
     // notify the adapter 
     adapter.notifyDataSetChanged(); 
    } 
} 
Verwandte Themen