java - How to move between the elements of recyclerview inside its adapters -


i couldn't phrase question problem, want achieve this:-

i have recyclerview of items contains textview example, when item clicked; custom dialog show containing same content of clicked element.

so far good, in same dialog there's 2 arrow (left & right) @ each of sides, arrows buttons should navigate between recyclerview items , update content according new position.

here's did:

  @override     public void onbindviewholder(final viewholder holder, final int position) {     holder.tvtitle.settext(data.get(position).gettitle());      holder.itemview.setonclicklistener(new onclicklistener() {       @override       public void onclick(view view) {        //initializing custom dailog         final dialog dialog = new dialog(context);         dialog.requestwindowfeature(window.feature_no_title);         dialog.getwindow() .setbackgrounddrawable(new colordrawable(android.graphics.color.transparent));         dialog.getwindow().getattributes().gravity = gravity.top;         dialog.setcontentview(r.layout.dailog);         dialog.show();          imageview rightarrow = (imageview) dialog.findviewbyid(r.id.dia_right_arrow);         imageview leftarrow = (imageview) dialog.findviewbyid(r.id.dia_left_arrow);         final textview textviewtitle = (textview) dialog.findviewbyid(r.id.dia_tvttile);           textviewtitle.settext(data.get(position).gettitle());          rightarrow.setonclicklistener(new view.onclicklistener() {           @override           public void onclick(view v) {                int curposi = 0;                  if (data.size() != 0) {                  curposi = position+1;               }          textviewtitle.settext(data.get(position).gettitle());           }         });          leftarrow.setonclicklistener(new view.onclicklistener() {           @override           public void onclick(view v) {              int curposi = 0;             if (data.size() != 0) {               curposi = position-1;             }            textviewtitle.settext(data.get(position).gettitle());            } });       }});       } 

the result:

when click on right arrow works 100% , but if click again nothing happens !!

and if click left arrow @ anytime gives crash exception:

java.lang.arrayindexoutofboundsexception: length=10; index=-1 

is possible achieve loop effect, mean when reach last index , click again shows first index , vice versa..!

any help?

it seems issue how check click limits. can try this

add curposi class member variable

private int curposi;  @override public void onbindviewholder(final viewholder holder, final int position) { holder.tvtitle.settext(data.get(position).gettitle());    holder.itemview.setonclicklistener(new onclicklistener() {   @override   public void onclick(view view) {    curposi = position    //initializing custom dailog     final dialog dialog = new dialog(context);     dialog.requestwindowfeature(window.feature_no_title);     dialog.getwindow() .setbackgrounddrawable(new colordrawable(android.graphics.color.transparent));     dialog.getwindow().getattributes().gravity = gravity.top;     dialog.setcontentview(r.layout.dailog);     dialog.show();      imageview rightarrow = (imageview) dialog.findviewbyid(r.id.dia_right_arrow);     imageview leftarrow = (imageview) dialog.findviewbyid(r.id.dia_left_arrow);     final textview textviewtitle = (textview) dialog.findviewbyid(r.id.dia_tvttile);       textviewtitle.settext(data.get(position).gettitle());      rightarrow.setonclicklistener(new view.onclicklistener() {       @override       public void onclick(view v) {           int lastindex = data.size()-1;          if (lastindex == curposi ) { // prevents crash, if next button clicked while last index showing reset , show first one..!           curposi = 0;         } else if(curposi < data.size()) {           curposi++;         }       textviewtitle.settext(data.get(curposi).gettitle());       }     });      leftarrow.setonclicklistener(new view.onclicklistener() {       @override       public void onclick(view v) {         //same thing here "if", when previous button clicked first; show last item..!            if (curposi == 0) {            curposi = data.size();         }          if (curposi > 0) {           curposi--;         }        textviewtitle.settext(data.get(curposi).gettitle());        } });   }});   } 

Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -