FB die Daten als array

Bin ich versucht zu implementieren FB in meine Android-app und ich möchte in der Lage sein, ziehen Sie alle Einträge in FB in der Reihenfolge, die Sie angezeigt werden in einem string-array in eine ListView
Hier ist die rohen JSON:

[ 5, "quot", "waaaaa", "also a quote", "oh this one is a little longer man", "gosh really long.   wow.  im very inspired.  golly gee wiz" ]

und der code, den ich verwende, um zu versuchen und bekommen es:

public class MyActivity extends ListActivity {
ArrayList<String> LIST = new ArrayList<String>();
Boolean wow = true;
Context context = this;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Firebase.setAndroidContext(context);
    updateList();


}
public void makeList(ArrayList<String> input){
    setListAdapter(new ArrayAdapter<String>(this, R.layout.mylist,input));
    ListView listView = getListView();
    listView.setTextFilterEnabled(true);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            //When clicked, show a toast with the TextView text
            Toast.makeText(getApplicationContext(),
                    ((TextView) view).getText(), Toast.LENGTH_SHORT).show();
        }
    });
}
public void updateList() {

    Firebase myFirebaseRef = new Firebase("https://admin1.firebaseio.com/");
    myFirebaseRef.child("0").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot snapshot) {
            System.out.println(snapshot.getValue());
            int length = Integer.parseInt(snapshot.getValue().toString());
            Firebase myFirebaseRef = new Firebase("https://admin1.firebaseio.com/");
            for(int i=1; i<length; i++) {
                String doIt = Integer.toString(i);
                myFirebaseRef.child(doIt).addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot snapshot) {
                        System.out.println(snapshot.getValue());
                        LIST.add(snapshot.getValue().toString());
                    }

                    @Override
                    public void onCancelled(FirebaseError error) {
                    }
                });
            }makeList(LIST); 
        }

        @Override
        public void onCancelled(FirebaseError error) {
        }
    });

    }

}

Ich dachte, ich könnte den ersten (0.) Objekt werden die Anzahl der Einträge und dann radeln Sie durch die gesamte Datei verwenden .getValue aber wenn diese ausgeführt wird bekomme ich die out-of-memory-Ausnahmen und die app Kraft schließt. Alles, was ich bin sicher, dass die relevanten FB-Sachen ist das Problem und nicht die ListView. Vielen Dank für alle Tipps.

InformationsquelleAutor IambicSam | 2015-03-09
Schreibe einen Kommentar