java - Android - storing two arrays in a single RecyclerView -


i have 2 arrays :

private void initdata(){     list = new arraylist<string>();                     list.add("element 1");                     list.add("element 2");                     list.add("element 3");                     list.add("element 4");                     list.add("element 5"); } private void initdata2(){     list2 = new arraylist<string>();                     list.add("item 1");                     list.add("item 2");                     list.add("item 3");                     list.add("item 4");                     list.add("item 5"); } 

what want achieve storing both lists in singler recyclerview in way list elements shown on left side of screen , items list shown in right side (like shown in picture below) using 2 listviews , willing convert single recyclerview ps. preferably maintain structure of arrays

edit / tutorial going use recyclerview tutorial

enter image description here

you can use pojo class this

public class dataholder {  string item1,item2;    public dataholder(){    }    string getitem1(){     retrun item1;    }     string getitem2(){     retrun item2;    }    string setitem1(string item1){     this.item1 = item1;    }   string setitem2(string item2){     this.item2 = item2;    } } 

then create dataholder list.

arraylist<dataholder> bothitemdatalist =new arraylist<dataholder>(); 

add item this.

dataholder item = new dataholder ();  item.setitem1("element 1"); item.setitem2("element 1");  bothitemdatalist.add(item); 

update section:

enter image description here

mainactivity:

public class mainactivity extends appcompatactivity {     private recyclerview mrecyclerview;     public edittext search;     //    private list<string> list = new arraylist<string>();     private list<dataholder> list = new arraylist<dataholder>();     simpleadapter madapter;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);         search = (edittext) findviewbyid(r.id.search);         mrecyclerview = (recyclerview) findviewbyid(r.id.recyclerview);         mrecyclerview.sethasfixedsize(true);         mrecyclerview.setlayoutmanager(new linearlayoutmanager(this));          countrylist();  // in method, create list of items.          // call adapter argument list of items , context.         madapter = new simpleadapter(list, this);         mrecyclerview.setadapter(madapter);          addtextlistener();      }      // method used create list of items.     public void countrylist() {          dataholder item = new dataholder();         item.setname("afghanistan");         item.settranslation("demo trans1");          list.add(item);          dataholder item1 = new dataholder();         item1.setname("paksitan");         item1.settranslation("my pakistan");          list.add(item1); //        list.add("afghanistan"); //        list.add("albania"); //        list.add("algeria"); //        list.add("bangladesh"); //        list.add("belarus"); //        list.add("canada"); //        list.add("cape verde"); //        list.add("central african republic"); //        list.add("denmark"); //        list.add("dominican republic"); //        list.add("egypt"); //        list.add("france"); //        list.add("germany"); //        list.add("hong kong"); //        list.add("india"); //        list.add("iceland");      }       public void addtextlistener() {          search.addtextchangedlistener(new textwatcher() {              public void aftertextchanged(editable s) {             }              public void beforetextchanged(charsequence s, int start, int count, int after) {             }              public void ontextchanged(charsequence query, int start, int before, int count) {                  query = query.tostring().tolowercase();                  final list<dataholder> filteredlist = new arraylist<dataholder>();                  (int = 0; < list.size(); i++) {                      final string text = list.get(i).getname().tolowercase();                     if (text.contains(query)) {                          filteredlist.add(list.get(i));                     }                 }                  mrecyclerview.setlayoutmanager(new linearlayoutmanager(mainactivity.this));                 madapter = new simpleadapter(filteredlist, mainactivity.this);                 mrecyclerview.setadapter(madapter);                 madapter.notifydatasetchanged();  // data set changed             }         });     } }  simpleadapter:  public class simpleadapter extends         recyclerview.adapter<simpleadapter.myviewholder> {      private list<dataholder> list_item;     public context mcontext;       public simpleadapter(list<dataholder> list, context context) {          list_item = list;         mcontext = context;     }      // called when recyclerview needs new recyclerview.viewholder of given type represent item.     @override     public simpleadapter.myviewholder oncreateviewholder(viewgroup parent,                                                          int viewtype) {         // create layout         view view = layoutinflater.from(parent.getcontext()).inflate(                 r.layout.list_item, null);          myviewholder myviewholder = new myviewholder(view);         return myviewholder;     }      // called recyclerview display data @ specified position.     @override     public void onbindviewholder(final myviewholder viewholder, final int position) {           viewholder.country_name.settext(list_item.get(position).getname());         viewholder.country_translation.settext(list_item.get(position).gettranslation());          viewholder.country_name.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                  toast.maketext(mcontext, list_item.get(position).getname(),                         toast.length_long).show();             }         });      }      // initializes private fields used recyclerview.     public static class myviewholder extends recyclerview.viewholder {          public textview country_name, country_translation;          public myviewholder(view itemlayoutview) {             super(itemlayoutview);              country_name = (textview) itemlayoutview.findviewbyid(r.id.country_name);             country_translation = (textview) itemlayoutview.findviewbyid(r.id.country_translation);          }     }      //returns total number of items in data set hold adapter.     @override     public int getitemcount() {         return list_item.size();     }  } 

list_item.xml

<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:paddingbottom="@dimen/activity_vertical_margin"     android:paddingleft="@dimen/activity_horizontal_margin"     android:paddingright="@dimen/activity_horizontal_margin"     android:paddingtop="@dimen/activity_vertical_margin"     tools:context="com.numetriclabz.androidsearch.mainactivity">      <relativelayout         android:layout_width="wrap_content"         android:layout_height="wrap_content">          <textview             android:id="@+id/country_name"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:layout_alignparenttop="true"             android:text="sohail"             android:textcolor="#0b0080"             android:textsize="16dp" />          <textview             android:id="@+id/country_translation"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:layout_marginleft="15dp"             android:layout_toendof="@+id/country_name"             android:layout_torightof="@+id/country_name"             android:text="new text"             android:textcolor="#0b0080" />      </relativelayout>  </relativelayout> 

dataholder:

public class dataholder {     string name, translation;       public dataholder() {     }      public string getname() {         return name;     }      public void setname(string name) {         this.name = name;     }      public string gettranslation() {         return translation;     }      public void settranslation(string translation) {         this.translation = translation;     } } 

update:

 public void countrylist() {          (int = 0; < list.size(); i++) {              dataholder item = new dataholder();             item.setname(i + "name");             item.settranslation(i + "translation");              list.add(item);         }     } 

Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -