android - ArrayList not being displayed in RecyclerView -


i'm trying display arraylist of integers inside of recyclerview, integer values in arraylist downloaded json, done, thing need display them in recyclerview.

this code far recyclerview not display anything.

all code updated current code

here's part of mainactivity:

public class mainactivity extends appcompatactivity {  private activitymainviewmodel viewmodel; recyclerview recyclerview; mainadapter madapter; public static arraylist<integer> ridelist = new arraylist<>();  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     //setcontentview(r.layout.activity_main);      activitymainbinding binding = databindingutil.setcontentview(this, r.layout.activity_main);      viewmodel = new activitymainviewmodel();     binding.setviewmodel(viewmodel);      recyclerview = (recyclerview) findviewbyid(r.id.recycler_view);     recyclerview.sethasfixedsize(true);     recyclerview.setlayoutmanager(new linearlayoutmanager(this));     madapter = new mainadapter(ridelist);     recyclerview.setadapter(madapter); } 

here's mainadapter class:

class mainadapter extends android.support.v7.widget.recyclerview.adapter<mainadapter.viewholder> {  private arraylist<integer> ridelist;  public mainadapter(arraylist<integer> ridelist) {     this.ridelist = ridelist; }  @override public mainadapter.viewholder oncreateviewholder(viewgroup parent, int viewtype) {     view view = layoutinflater.from(parent.getcontext()).inflate(r.layout.row, parent, false);     return new viewholder(view); }  @override public void onbindviewholder(mainadapter.viewholder holder, int position) {     holder.rideheight.settext(string.valueof(ridelist.get(position))); }  @override public int getitemcount() {     return ridelist.size(); }  public class viewholder extends recyclerview.viewholder {      public textview rideheight;     public viewholder(view itemview) {         super(itemview);          rideheight = (textview) itemview.findviewbyid(r.id.rideheight_textview);     } } 

}

row.xml:

<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content">  <textview     android:id="@+id/rideheight_textview"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:textsize="20sp"/>  </linearlayout> 

i know looks mess that's because have been searching both on google , youtube on how use recyclerview might have mixed different tutorials , tried somethings myself.

thanks!

edit: jsondata code added on request:

jsondata:

public class jsondata { public observablefield<string> dropheight = new observablefield<>(); public observablefield<string> ridecount = new observablefield<>(); int eid; int sid;  public jsondata() {     dropheight.set("");     ridecount.set(""); }  public void downloadfromskistar() {     if (settingsactivity.submitclicked)     {         eid = settingsactivity.x;         sid = settingsactivity.y;     }     else     {         eid = 3206;         sid = 11;     }      try     {         url url = new url("https://www.skistar.com/myskistar/api/v2/views/statisticspage.json?entityid=" + eid + "&seasonid=" + sid + " ");         httpurlconnection conn = (httpurlconnection) url.openconnection();         conn.setreadtimeout(10000 /* milliseconds */);         conn.setconnecttimeout(15000 /* milliseconds */);         conn.setrequestmethod("get");         // starts query         conn.connect();          int response = conn.getresponsecode();         log.i("androidexample", "response: " + response);          if (response == 200)         {             string json = getjson(conn.getinputstream());              jsonobject jsonobject = new jsonobject(json);             jsonarray jsonarray = jsonobject.getjsonarray("ridestatistics");              int reponame = 0;             int rheight = 0;              (int = 0; < jsonarray.length(); i++)             {                 jsonobject skirun = jsonarray.getjsonobject(i);                 reponame += skirun.getint("height");                  rheight += skirun.getint("height");                 mainactivity.ridelist.add(new integer(rheight));                 rheight = 0;             }             final int height = reponame;             final int count =  jsonarray.length();              new handler(looper.getmainlooper()).post(new runnable() {                 @override                 public void run() {                     dropheight.set("" + height);                     ridecount.set("" + count);                 }             });         }     }     catch (exception e)     {         log.i("androidexample", "error");     }         {     } }  private string getjson(inputstream stream) throws ioexception {     bufferedreader reader;     reader = new bufferedreader(new inputstreamreader(stream, "utf-8"));      stringbuilder builder = new stringbuilder();     string line;      while ((line = reader.readline()) != null) {         builder.append(line + '\n');     }     //should placed in     stream.close();     return builder.tostring(); } } 

you can use like..

  1. model..to set value , value

    public class custommodel {  private  int it;    public int getit() {    return it;    }    public void setit(int it) {    this.it = it;     }  } 
  2. adapter ...

         private class  mainadapter extends recyclerview.adapter<mainadapter.viewholder>{  public mainadapter(arraylist<custommodel> list){      dataset = list; }  @override public viewholder oncreateviewholder(viewgroup viewgroup, int viewtype) {      view itemlayoutview = layoutinflater.from(viewgroup.getcontext()).inflate(             r.layout.row, null);      itemlayoutview.setlayoutparams(new recyclerview.layoutparams(recyclerview.layoutparams.match_parent, recyclerview.layoutparams.wrap_content));      mainadapter.viewholder viewholder = new mainadapter.viewholder(itemlayoutview);      return viewholder; }   @override public void onbindviewholder(viewholder viewholder, int position) {     custommodel cardmodel = dataset.get(position);     viewholder.rideheight_textview.settext(string.valueof(cardmodel.getid()));  }  @override public int getitemcount() {     return dataset.size(); }  public void updatelist(list<custommodel> temp) {     dataset = (arraylist<custommodel>) temp;     notifydatasetchanged(); }  public  class viewholder extends recyclerview.viewholder {      public textview rideheight_textview;        public viewholder(view itemlayoutview) {         super(itemlayoutview);          rideheight_textview = (textview) itemlayoutview  .findviewbyid(r.id.rideheight_textview);           itemlayoutview.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view view) {                //action ****             }         });     }      }  } 
  3. just call like

     arraylist<custommodel> menulist = new arraylist<>(); custommodel c = new custommodel(); c.setit(1); recyclerview.sethasfixedsize(true); // listview recyclerview.setlayoutmanager(new linearlayoutmanager(your activity.this)); // create object adapter mainadapter madapter = new mainadapter(menulist); // set adapter object recyclerview recyclerview.setadapter(madapter); 
  4. row.xml

     <?xml version="1.0" encoding="utf-8"?>   <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:background="#ffffff"     android:padding="@dimen/activity_vertical_margin"     android:layout_width="match_parent"      android:layout_height="wrap_content">  <textview  android:id="@+id/rideheight_textview"  android:layout_width="match_parent"   android:layout_height="wrap_content"  android:textcolor="#000000"  android:textsize="20sp"/>   </linearlayout> 

Comments

Popular posts from this blog

python - Selenium remoteWebDriver (& SauceLabs) Firefox moseMoveTo action exception -

html - How to custom Bootstrap grid height? -

transpose - Maple isnt executing function but prints function term -