ListView mit NullpointerEX, Anfänger braucht Hilfe

  • Antworten:3
Marius K.
  • Forum-Beiträge: 2

11.09.2014, 01:00:28 via Website

Hallo Leute,

ich brauche eure Hilfe, denn ich sehe meinen Fehler nicht. Da ich hier neu bin, hoffe ich das ich hier richtig bin. Sollte irgendwas nicht passen, bitte einfach bescheid sagen.

Zu meinem Problem: Ich versuche lediglich eine Auflistung, in diesem Fall von Büchern, in einer App zu realisieren. Aber leider kann ich die Listview nicht davon überzeugen mit der DB zu kommunizieren.

     MySQLiteHelper db = new MySQLiteHelper(this);

    //getAllBooks
    try{
    List<String> bookStringList = db.getAllBookStrings(); //Buecher in Liste
    Log.d("Testausgabe",bookStringList.toString()); //Testausgabe


    ArrayAdapter<String> bookAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, bookStringList); //Adapter fuer ListView und Buecherliste
    ListView bookView = (ListView) findViewById(R.id.listView1); //ListView zuweisen
    bookView.setAdapter(bookAdapter); //Adapter zuweisen

    }catch(Exception e){
        e.printStackTrace();
        Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
    }finally{
        db.close();
    }

Die Methode getAllBookStrings() gibt eine LinkedList<String> zurück.

LogCat gibt mir die korrekte Ausgabe zurück und direkt danach dann eine NullpointerEx:

Testausgabe: Buch von Autor, Buch2 von Autor2
SystemErr:java.lang.NullpointerEX (Fehler in Zeile: "bookView.setAdapter(bookAdapter);")

Ich habe schon gegoogelt und gelesen und angepasst, aber irgendwie komme ich nicht weiter.

Achso, außerdem funktioniert der Toast nur bedingt. Der Try-catchBlock sorgt zwar dafür, dass die App nicht crash, aber leider gibt er mir keinen Fehlertext aus.

Ich hoffe ihr könnt mir helfen, wenn ihr noch was braucht, sagt bitte einfach bescheid.

LG und vielen Dank schonmal!

Marius

Antworten
Steffen S.
  • Forum-Beiträge: 63

11.09.2014, 07:42:18 via App

hast du setContentView gemacht, bevor du diese funktion ausführst ;-)

weil der einzige fehler was ich grad mir vorstellen kann wäre das.

das du das layout an der falschen stelle setzt oder gar nicht setzt.
weil der NullPointerEx entsteht dadurch, das die View null ist. das heist er konnte das View nicht über findViewById finden.

Überprüfe mal dein Layout (die ID vom View) und wo du setContentView machst (ob vor oder mach dieser Funktion) . am besten direkt nach super.onCreate(....) im onCreate(...)
auser du machst noch request Änderungen am window, dann nach dem. aber in jeden fall im onCreate und bevor du die Funktion ausführst.

wenn nicht geht, musst du mal den kompletten code posten.

Marius K.

Antworten
Marius K.
  • Forum-Beiträge: 2

11.09.2014, 12:08:23 via Website

Oh mein Gott, das war es. Die ListView war in einer anderen activity.

Da hab ich mich so drauf versteift, dass ich mit der Liste eine Nullpointer an die ListView übergebe, aber die ListView war es selbst.

Vielen Dank!

Antworten
Steffen S.
  • Forum-Beiträge: 63

11.09.2014, 19:52:52 via App

kein Problem, machmal sieht man das einfachste einfach nicht.

Antworten