Null-Pointer-Exception in ListView - wird über Datenbank gefüllt

KleeSchulz

Neues Mitglied
Hallo Leute,

aktuell bekomm ich bei der letzten Kategorie in meiner ListView folgende Fehlermeldung


```
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.widget.CheckedTextView.getText()' on a null object reference
at BLUB.App.saufio.MainActivity.gebeKategorie(MainActivity.java:362)
at BLUB.App.saufio.MainActivity.btn_zumSpiel(MainActivity.java:281)
```

Dies ist die Methode, bei der der Fehler auftritt. Es spielt keine Rolle, ob die Elemente mehrmals ausgewählt werden. Das Programm stürzt immer in der 4. Kategorie ab.

```
private String gebeKategorie(){
SparseBooleanArray sp = lv_kategorie.getCheckedItemPositions();
StringBuilder sb= new StringBuilder();
Log.i("INFO",sb.toString());
for(int i=0;i<sp.size();i++){
if(sp.valueAt(i)==true){
Log.i("HURE12",sb.toString());
sb.append("'");
String s;
try {
s = ((CheckedTextView) lv_kategorie.getChildAt(i)).getText().toString(); //line 362
} finally {
//TODO Bug beheben, Kategorien
//sb = sb.append("Sport");
}
sb = sb.append(s+"',");
}
}

if (sb.length()==0){
return "0";
}
else{
return sb.toString().substring(0, sb.length() - 1);
}
}
```

Das 4. Element wird gefüllt: Hier ist der Code. Um das Array zu füllen, verwenden Sie die Funktion:

Dies ist in der Main:

kategorie=db.getKategorien().toArray(new String[0])

und das ist die Methode get.kategorien:

public List<String> getKategorien() {
List<String> kategorieList = new ArrayList<String>();
String selectQuery = "SELECT max(" + KEY_KATEGORIE + ")," + KEY_KATEGORIE + " FROM " + TABLE_AUFGABE + " group by " + KEY_KATEGORIE + " order by " + KEY_ID;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
kategorieList.add(cursor.getString(0));
} while (cursor.moveToNext());
}
Log.i("Database", "Aufgabe Liste: " + kategorieList);
return kategorieList;
}

und hier die Methode initListViewKategorie

private void initListViewKategorie() {
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, kategorie);
lv_kategorie.setAdapter(arrayAdapter);
for (int i = 0; i < kategorie.length; i++) {
lv_kategorie.setItemChecked(i, false);
}
}

Ich habe versucht, den Fehler mit try and catch block abzufangen. Fügen Sie eine weitere letzte Kategorie hinzu, aber es ist nur in der 4. Kategorie
 

Jw456

Top Contributor
Java:
if (cursor.moveToFirst()) {
    do {
        kategorieList.add(cursor.getString(0));
    } while (cursor.moveToNext());
}

teste erstmal wie viele Elemente im Cursor sind und setze ihn dann auf Anfang.

Do While finde ich hier auch nicht sinnvoll die wird ja mindestens immer einmal durchlaufen auch wenn der Cuore am ende steht.

Ps
Java:
s = ((CheckedTextView) lv_kategorie.getChildAt(i)).getText().toString(); //line 362
was ist "lv_kategorie" ?
 
Zuletzt bearbeitet:


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Android null pointer (ich verstehs nicht) Android & Cross-Platform Mobile Apps 2
W ListView fehler: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference Android & Cross-Platform Mobile Apps 5
TheWhiteShadow Android Class.getResource immer null Android & Cross-Platform Mobile Apps 6
T Chronometer null bei rotation Android & Cross-Platform Mobile Apps 2
M Invalid Heap Pointer found / Bad dynamic Heap Objects found Android & Cross-Platform Mobile Apps 11
H Android Nullpointer Exception bei Methodenaufruf durch MainActivity Android & Cross-Platform Mobile Apps 3
P Number Format Exception Android & Cross-Platform Mobile Apps 2
T Android Unexpected Top-Level Exception Android & Cross-Platform Mobile Apps 2
G merkwürdige Exception mit android und SQLLite Android & Cross-Platform Mobile Apps 18
D Unhandled exception type JSONException Android & Cross-Platform Mobile Apps 2
G Exception bei jedem Klick Android & Cross-Platform Mobile Apps 2
X Unable to execute dex: Java heap space Exception bei Sqllite lib Android & Cross-Platform Mobile Apps 14
S Java ME Exception beim Abspielen von Musik Android & Cross-Platform Mobile Apps 6
H Nullpointer Exception im BaseAdapter Android & Cross-Platform Mobile Apps 7
P createImage wirft Exception Android & Cross-Platform Mobile Apps 3

Ähnliche Java Themen

Neue Themen


Oben