android - Fragment not displaying the recycleview -
new android, code showing recyclerview till time made changes item.xml layout file, later reverted.but not displaying layout, toast msg. not sure went wrong..
here parsing xml file display in recyclerview. toast msg shows number of books available 1 , showed title too.
recycleviewfrag.java
package com.androidatc.customviewindrawer; import android.app.activity; import android.app.fragment; import android.net.uri; import android.os.bundle; import android.support.v7.widget.linearlayoutmanager; import android.support.v7.widget.recyclerview; import android.util.log; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.textview; import android.widget.toast; import org.w3c.dom.document; import org.w3c.dom.nodelist; import org.xml.sax.inputsource; import org.xml.sax.saxexception; import java.io.ioexception; import java.io.stringreader; import java.util.arraylist; import java.util.list; import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import javax.xml.parsers.parserconfigurationexception; public class recyclerviewfrag extends fragment { public list<book> books; public recyclerview rv; public textview formattxt, contenttxt, titletxt, publishertxt, creatortxt, availabiltytxt; @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view rootview = inflater.inflate(r.layout.recyclerview, container, false); string response =getarguments().getstring("book_xml"); rv=(recyclerview)rootview.findviewbyid(r.id.rv); linearlayoutmanager llm = new linearlayoutmanager(getactivity()); rv.setlayoutmanager(llm); rv.sethasfixedsize(true); readdetails(response); initializeadapter(); return rootview; } public interface onfragmentinteractionlistener { // todo: update argument type , name public void onfragmentinteraction(uri uri); } public void initializedata(string[] titles, string [] creators, int total){ books = new arraylist<>(); for(int = 0;i>total;i++) { books.add(new book(titles[i], creators[i], r.drawable.barscan)); } toast.maketext(getactivity().getapplicationcontext(), "total number of books found:" + total + " " + titles[0], toast.length_long).show(); } public void initializeadapter(){ booklistadapter adapter = new booklistadapter(books); rv.setadapter(adapter); } public void readdetails(string response) { documentbuilder builder = null; try { builder = documentbuilderfactory.newinstance().newdocumentbuilder(); inputsource src = new inputsource(); src.setcharacterstream(new stringreader(response)); document doc = builder.parse(src); nodelist nodes1 = doc.getelementsbytagname("dc:title"); src.setcharacterstream(new stringreader(response)); nodelist nodes = doc.getelementsbytagname("dc:duedate"); int cnt = 0; string[] titles1 = new string[10000]; string[] titles = new string[10000]; string[] creators = new string[10000]; (int = 0; < nodes.getlength(); i++) { if (nodes.item(i).gettextcontent() == "dc:title") { titles1[i] = doc.getelementsbytagname("dc:title").item(0).gettextcontent(); } if (nodes.item(i).gettextcontent().trim().isempty()) { cnt++; } } log.e("taglog", "" + cnt); (int = 0; < nodes1.getlength(); i++) { titles[i] = doc.getelementsbytagname("dc:title").item(0).gettextcontent(); creators[i] = doc.getelementsbytagname("dc:creator").item(0).gettextcontent(); } initializedata(titles, creators, nodes1.getlength()); } catch (parserconfigurationexception e) { e.printstacktrace(); } catch (saxexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } catch (exception e) { e.printstacktrace(); toast.maketext(getactivity().getapplicationcontext(), "no book found", toast.length_long).show(); } { } }} booklistadapter.java
package com.androidatc.customviewindrawer; import android.support.v7.widget.cardview; import android.support.v7.widget.recyclerview; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.imageview; import android.widget.textview; import java.util.list; public class booklistadapter extends recyclerview.adapter<booklistadapter.personviewholder> { public static class personviewholder extends recyclerview.viewholder { cardview cv; textview title; textview creator; imageview personphoto; personviewholder(view itemview) { super(itemview); cv = (cardview)itemview.findviewbyid(r.id.cv); title = (textview)itemview.findviewbyid(r.id.title); creator = (textview)itemview.findviewbyid(r.id.creator); personphoto = (imageview)itemview.findviewbyid(r.id.person_photo); } } list<book> books; booklistadapter(list<book> books){ this.books = books; } @override public void onattachedtorecyclerview(recyclerview recyclerview) { super.onattachedtorecyclerview(recyclerview); } @override public personviewholder oncreateviewholder(viewgroup viewgroup, int i) { view v = layoutinflater.from(viewgroup.getcontext()).inflate(r.layout.item, viewgroup, false); personviewholder pvh = new personviewholder(v); return pvh; } @override public void onbindviewholder(personviewholder personviewholder, int i) { personviewholder.title.settext(books.get(i).title); personviewholder.creator.settext(books.get(i).creator); personviewholder.personphoto.setimageresource(books.get(i).photoid); } @override public int getitemcount() { return books.size(); } } recycleview.xml
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" > <android.support.v7.widget.recyclerview android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/rv" > </android.support.v7.widget.recyclerview> </linearlayout> item.xml
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.cardview xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/cv" > <relativelayout android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="16dp" > <imageview android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/person_photo" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:layout_marginright="16dp" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/title" android:layout_torightof="@+id/person_photo" android:layout_alignparenttop="true" android:textsize="30sp" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/creator" android:layout_torightof="@+id/person_photo" android:layout_below="@+id/title" /> </relativelayout> </android.support.v7.widget.cardview> cardview.xml
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" > <android.support.v7.widget.cardview android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/cv" > <relativelayout android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="16dp" > <imageview android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/person_photo" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:layout_marginright="16dp" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/title" android:layout_torightof="@+id/person_photo" android:layout_alignparenttop="true" android:textsize="30sp" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/creator" android:layout_torightof="@+id/person_photo" android:layout_below="@+id/title" /> </relativelayout> </android.support.v7.widget.cardview> </linearlayout> i calling above fragment searchbooklistfrag in below code:
public void replacefragment(string response) { try { fragment fr=new recyclerviewfrag(); final fragmenttransaction ft = getfragmentmanager().begintransaction(); bundle args = new bundle(); args.putstring("book_xml", response); fr.setarguments(args); ft.replace(r.id.search_view, fr); ft.addtobackstack(null); ft.commit(); } catch (exception e) { e.printstacktrace(); toast.maketext(getactivity().getapplicationcontext(), "unable change fragment", toast.length_long).show(); } } i still seeing layout of above (previous) fragment.
spent hours unable figure out what's wrong. suggestions welcome.
the problem not on recycleview problem on "for" loop @ function "initializedata" on "recyclerviewfrag" class. loop never start because i>total false change for(int = 0;i>total;i++) { books.add(new book(titles[i], creators[i], r.drawable.barscan)); } for(int = 0;i<total;i++) { books.add(new book(titles[i], creators[i], r.drawable.barscan)); }
Comments
Post a Comment