2016-11-17 1 views
0

Ich habe eine Liste, in der ich habe die Werte von sqlite holen die Werte, die ich von sqlite abgeholt habe in Basis-Adapter gespeichert, wo ich die Bedingung zu überprüfen verwendet habe die Saiten hat Werte oder nicht, aber es zeigt mir immer noch die null-Zeiger-Ausnahme auch i null die nicht in dem Zustand hinzugefügt haben, aber es hat nicht funktioniert und hier ist mein Code:NULL-Pointer-Ausnahme beim Laden von Daten von SQLite-Datenbank zu BaseAdapter in Android

final Daybooklist m = daybooklists.get(position); 
    if (m.getUsertype().startsWith("farmer") && m.getUsertype() != null) { 
     day_name.setText(m.getName()); 
     day_description.setText(m.getDescription()); 
     day_type.setText(m.getType()); 
     if (m.getName().startsWith("no") && m.getName() != null) { 
      day_name.setText(" "); 
     } else if (m.getDescription().startsWith("no") && m.getDescription() != null) { 
      day_description.setText(" "); 
     } 
     day_amount.setText("\u20B9" + m.getAmountin()); 

    } else if (m.getUsertype().startsWith("advancefarmer") && m.getUsertype() != null) { 
     day_name.setText(m.getName()); 
     day_description.setText(m.getDescription()); 
     day_type.setText(m.getType()); 
     if (m.getName().startsWith("no") && m.getName() != null) { 
      day_name.setText(" "); 
     } else if (m.getDescription().startsWith("no") && m.getDescription() != null) { 
      day_description.setText(" "); 
     } 
     Log.e("amountout",m.getAmountout()); 
     day_amount.setText("\u20B9" + m.getAmountout()); 
    } else { 
     day_name.setText(m.getName()); 
     day_description.setText(m.getDescription()); 
     day_type.setText(m.getType()); 
     if (m.getName().startsWith("no") && m.getName()!=null) { 
      day_name.setText(" "); 
     } else if (m.getDescription().startsWith("no") && m.getDescription() != null) { 
      day_description.setText(" "); 
     } 
     Log.e("amountout",m.getAmountout()); 
     day_amount.setText("\u20B9" + m.getAmountout()); 

    } 

Ausnahme:

java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.startsWith(java.lang.String)' on a null object reference 
                    at codingtown.coconut.daybook.adapter.Daybooklist_adapter.getView(Daybooklist_adapter.java:96) 
                    at android.widget.AbsListView.obtainView(AbsListView.java:2360) 
                    at android.widget.ListView.measureHeightOfChildren(ListView.java:1270) 
                    at android.widget.ListView.onMeasure(ListView.java:1182) 
                    at codingtown.coconut.libraries.expandablelistview.ExpandableHeightListView.onMeasure(ExpandableHeightListView.java:34) 
+0

Problem ist nicht mit Ihrer "m" Variable. Sein m.getUsertype(), das Nullobjekt zurückgibt. Überprüfen Sie, ob Sie Daybooklist ordnungsgemäß füllen und UserType richtig zuweisen. Überprüfen Sie es wie folgt: if (m.getUsertype()! = Null && m.getUsertype(). StartsWith ("bauer")). Null-Check wurde nie ausgeführt. – Naeem

Antwort

0

ändern Sie Ihren Code wie diese Struktur

if(m.getUsertype() != null && !m.getUsertype().isEmpty()) { 


if (m.getUsertype().startsWith("farmer") 
{ 
} 
else if (m.getUsertype().startsWith("advancefarmer") 
{ 
} 
.... 
} 
+0

Sie können auch 'if (! TextUtils.isEmpty (m.getUsertype()) {' anstelle von 'if (m.getUsertype()! = Null &&! M.getUsertype(). IsEmpty()) {'verwenden – SleepyTonic

Verwandte Themen