android studio - Add EditText to Recycler -


i new android recyclerview , gives error while tried add edittext fields recycler.i cannot find how this. please solve issue , in advance :) :) mainactivity code:

public class mainactivity extends appcompatactivity{  private recyclerview mrecyclerview; private customrecycleradapter madapter; private recyclerview.layoutmanager mlayoutmanager;  private edittext mtext; private edittext mcolor;  private list<data> mdata = new arraylist<>();  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);      // initializing views.     mtext = (edittext) findviewbyid(r.id.textet);      mrecyclerview = (recyclerview) findviewbyid(r.id.recycler);      // if size of views not change data changes.     mrecyclerview.sethasfixedsize(true);      // setting layoutmanager.     mlayoutmanager = new linearlayoutmanager(this);     mrecyclerview.setlayoutmanager(mlayoutmanager);      // setting adapter.     madapter = new customrecycleradapter();     mrecyclerview.setadapter(madapter); }  // called when add button clicked. public void additem(view view) {      // add data locally list.     data datatoadd = new data(             mtext.gettext().tostring());     mdata.add(datatoadd);;      // update adapter.     madapter.additem(mdata.size() - 1, datatoadd); } 

}

the customrecycleradapter

package com.example.niroj.jsonandsqlite; public  class customrecycleradapter extends      recyclerview.adapter<recyclerviewholder> {  private list<data> mdata = collections.emptylist();  public customrecycleradapter() {     // pass context or other static stuff needed. }  public void updatelist(list<data> data) {     mdata = data;     notifydatasetchanged(); } @override public int getitemcount() {     return mdata.size(); }  @override public recyclerviewholder oncreateviewholder(viewgroup viewgroup, int position) {     layoutinflater inflater = layoutinflater.from(viewgroup.getcontext());     view itemview = inflater.inflate(r.layout.list_item, viewgroup, false);     return new recyclerviewholder(itemview); }  @override public void onbindviewholder(recyclerviewholder viewholder, int position) {     viewholder.title.settext(mdata.get(position).text);  }   public void additem(int position, data data) {     mdata.add(position, data);     notifyiteminserted(position); }  public void removeitem(int position) {     mdata.remove(position);     notifyitemremoved(position); } 

}

the data class have contains

public class data { public string text;  public data(string text) {     this.text = text;  }  public string gettext() {     return text; }  public void settext(string text) {     this.text = text; } 

}

what ? here code :-

this mainactivity.java

public class mainactivity extends appcompatactivity implements recyclerviewadapter.onitemclicklistener{  private recyclerview myrecyclerview;  private linearlayoutmanager linearlayoutmanager;  private recyclerviewadapter myrecyclerviewadapter;    edittext namefield;  button btnadd;    @override  protected void oncreate(bundle savedinstancestate) {      super.oncreate(savedinstancestate);      setcontentview(r.layout.activity_main);      myrecyclerview = (recyclerview)findviewbyid(r.id.myrecyclerview);        linearlayoutmanager =              new linearlayoutmanager(this, linearlayoutmanager.vertical, false);      /*      linearlayoutmanager =              new linearlayoutmanager(this, linearlayoutmanager.horizontal, false);      */        myrecyclerviewadapter = new recyclerviewadapter(this);      myrecyclerviewadapter.setonitemclicklistener(this);      myrecyclerview.setadapter(myrecyclerviewadapter);      myrecyclerview.setlayoutmanager(linearlayoutmanager);        namefield = (edittext)findviewbyid(r.id.namefield);      btnadd = (button)findviewbyid(r.id.addbutton);      btnadd.setonclicklistener(new view.onclicklistener(){          @override          public void onclick(view v) {              string newname = namefield.gettext().tostring();                if(!newname.equals("")){                  if(myrecyclerviewadapter.getitemcount()>1){                      myrecyclerviewadapter.add(1, newname);                  }else{                      myrecyclerviewadapter.add(0, newname);                  }              }          }      });  }    @override  public void onitemclick(recyclerviewadapter.itemholder item, int position) {      toast.maketext(this,              "remove " + position + " : " + item.getitemname(),              toast.length_short).show();      myrecyclerviewadapter.remove(position);   } } 

this recyclerviewadapter.java

public class recyclerviewadapter extends     recyclerview.adapter<recyclerviewadapter.itemholder> {    private list<string> itemsname;  private onitemclicklistener onitemclicklistener;  private layoutinflater layoutinflater;    public recyclerviewadapter(context context){      layoutinflater = layoutinflater.from(context);      itemsname = new arraylist<string>();  }    @override  public recyclerviewadapter.itemholder oncreateviewholder(viewgroup parent, int viewtype) {      view itemview = layoutinflater.inflate(r.layout.list_item, parent, false);      return new itemholder(itemview, this);  }    @override  public void onbindviewholder(recyclerviewadapter.itemholder holder, int position) {      holder.setitemname(itemsname.get(position));  }    @override  public int getitemcount() {      return itemsname.size();  }    public void setonitemclicklistener(onitemclicklistener listener){      onitemclicklistener = listener;  }    public onitemclicklistener getonitemclicklistener(){      return onitemclicklistener;  }    public interface onitemclicklistener{      public void onitemclick(itemholder item, int position);  }    public void add(int location, string iname){      itemsname.add(location, iname);      notifyiteminserted(location);  }    public void remove(int location){      if(location >= itemsname.size())          return;        itemsname.remove(location);      notifyitemremoved(location);  }    public static class itemholder extends recyclerview.viewholder implements view.onclicklistener{        private recyclerviewadapter parent;      textview textitemname;        public itemholder(view itemview, recyclerviewadapter parent) {          super(itemview);          itemview.setonclicklistener(this);          this.parent = parent;          textitemname = (textview) itemview.findviewbyid(r.id.item_name);      }        public void setitemname(charsequence name){          textitemname.settext(name);      }        public charsequence getitemname(){          return textitemname.gettext();      }        @override      public void onclick(view v) {          final onitemclicklistener listener = parent.getonitemclicklistener();          if(listener != null){              listener.onitemclick(this, getposition());          }      }  }  } 

Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -