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

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

json - Gson().fromJson(jsonResult, Myobject.class) return values in 0's -