listview - NullPointerException in retrieving data from Firebase in Android Studio -
i trying retrieve value firebase database , store in list view app getting closed. exception in logcat coming as
java.lang.nullpointerexception: attempt invoke virtual method 'void android.widget.listview.setadapter(android.widget.listadapter)' on null object reference @ com.example.dell.week11.mainactivity$1.ondatachange(mainactivity.java:60)
this main activity
package com.example.dell.week11; import android.app.activity; import android.content.intent; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.menu; import android.view.menuinflater; import android.view.menuitem; import android.view.view; import android.widget.listview; import android.widget.textview; import android.widget.toast; import com.google.firebase.database.datasnapshot; import com.google.firebase.database.databaseerror; import com.google.firebase.database.databasereference; import com.google.firebase.database.firebasedatabase; import com.google.firebase.database.valueeventlistener; import org.w3c.dom.text; import java.util.arraylist; import java.util.list; public class mainactivity extends appcompatactivity { listview listview; databasereference databasefaq; list<faq> faqlist; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); databasefaq= firebasedatabase.getinstance().getreference("faq"); listview=(listview)findviewbyid(r.id.listview); faqlist=new arraylist<>(); } @override protected void onstart() { super.onstart(); databasefaq.addvalueeventlistener(new valueeventlistener() { @override public void ondatachange(datasnapshot datasnapshot) { faqlist.clear(); for(datasnapshot faqsnapshot:datasnapshot.getchildren()) { faq faq=faqsnapshot.getvalue(faq.class); faqlist.add(faq); } faqlist adapter=new faqlist(mainactivity.this,faqlist); listview.setadapter(adapter); } @override public void oncancelled(databaseerror databaseerror) { } }); } @override public boolean oncreateoptionsmenu(menu menu) { menuinflater inflater=getmenuinflater(); inflater.inflate(r.menu.menu,menu); return super.oncreateoptionsmenu(menu); } @override public boolean onoptionsitemselected(menuitem item) { if(item.getitemid()==r.id.add) { intent i=new intent(mainactivity.this,addactivity.class); startactivity(i); } return super.onoptionsitemselected(item); } } next customadapter faqlist:
package com.example.dell.week11; import android.app.activity; import android.text.layout; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.arrayadapter; import android.widget.textview; import java.util.list; /** * created dell on 4/7/2017. */ public class faqlist extends arrayadapter<faq> { private activity context; list<faq> faqlist; public faqlist(activity context,list<faq> faqlist){ super(context,r.layout.list_layout,faqlist); this.context=context; this.faqlist=faqlist; } @override public view getview(int position, view convertview, viewgroup parent) { layoutinflater inflater=context.getlayoutinflater(); view listviewitem=inflater.inflate(r.layout.list_layout,null,true); textview q=(textview)listviewitem.findviewbyid(r.id.questiontv); textview a=(textview)listviewitem.findviewbyid(r.id.answertv); faq faq=faqlist.get(position); q.settext(faq.getfaqquestion()); a.settext(faq.getfaqanswer()); return listviewitem; } } and model class
package com.example.dell.week11; /** * created dell on 4/5/2017. */ public class faq { string faqid,faqquestion,faqanswer; public faq() { } public faq(string faqid, string faqquestion, string faqanswer) { this.faqid = faqid; this.faqquestion = faqquestion; this.faqanswer = faqanswer; } public string getfaqid() { return faqid; } public string getfaqquestion() { return faqquestion; } public string getfaqanswer() { return faqanswer; } }
you did not call setcontentview in oncreate method.
Comments
Post a Comment