java - how to refresh view of previous item row view of recycle view -


hello guys hope fine. i'm developing android app play different sounds of animals.

i'm using recycle view can see in screenshot below. i'm facing problem, have play button inside row playing sound of animal whenever play sound item 0 or position shows me pause option inside view. whenever click on next item 1 or other it's not changing image of previous item 0.

i'm doing refreshing list of adapter using following code.! think not practice.!

                t1.recyclerview.setadapter(null);                 t1.customadapter=new customadapter(t1.animallist,ctx);                 t1.recyclerview.setadapter(t1.customadapter); 

i tried using every thing notifyitemchanged(oldposition) still havent got desired result.!

kindly suggest me appropriate way solve this? i'm new android , have 1 thought in mind view of last item , save first view , set default image play on previous list button don't know how this?

here code of custom adapter.!

public class customadapter extends recyclerview.adapter<customadapter.myviewholder> {     private list<animal> animallist;     public context ctx;     public static int postionchange=-1;      public static tab1birds t1;       final int[] countlike = {0};     //public static mediaplayer mediaplayer2 = new mediaplayer();     int pos=0;     public class myviewholder extends recyclerview.viewholder {             public imageview display;             public textview nametextview;             public imagebutton play,options,menubtn;             public myviewholder(view view) {                 super(view);                 nametextview = (textview) view.findviewbyid(r.id.nametextview);                 play=(imagebutton)view.findviewbyid(r.id.playbtn);                 options=(imagebutton)view.findviewbyid(r.id.menubtn);                 display=(imageview)view.findviewbyid(r.id.imageview);                 menubtn = (imagebutton) view.findviewbyid(r.id.menubtn);                     //mediaplayerclass.mediaplayer= new mediaplayer();             }     }     public customadapter(list<animal> movieslist,context ct) {         this.animallist = movieslist;         this.ctx=ct;         }     @override         public myviewholder oncreateviewholder(viewgroup parent, int viewtype) {             view itemview = layoutinflater.from(parent.getcontext())                     .inflate(r.layout.row_list, parent, false);         return new myviewholder(itemview);         }     @override         public void onbindviewholder(final myviewholder holder, final int position) {         final animal animal = animallist.get(position);          final int[] previous = {position};             holder.nametextview.settext(animal.getname());             holder.display.setimageresource(animal.getimageresource());         //////////////////////////////////////////////////////////////////////////////////////////////////////////         holder.options.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                  try {                     if (mediaplayerclass.mediaplayer.isplaying()) {                         holder.play.setbackgroundresource(r.drawable.play_btn);                         mediaplayerclass.mediaplayer.stop();                     }                 } catch (exception ex) {                 }                 dialog dialog;                 final string[] items = {"set ring tune", "set message tune", "set alarm tune"};                 final arraylist itemsselected = new arraylist();                 final alertdialog.builder builder = new alertdialog.builder(ctx);                 builder.settitle("options");                 builder.setmultichoiceitems(items, null,                         new dialoginterface.onmultichoiceclicklistener() {                             @override                             public void onclick(dialoginterface dialog, int selecteditemid,                                                 boolean isselected) {                                 if (isselected) {                                     itemsselected.add(selecteditemid);                                 } else if (itemsselected.contains(selecteditemid)) {                                     itemsselected.remove(integer.valueof(selecteditemid));                                 }                             }                         })                         .setpositivebutton("done!", new dialoginterface.onclicklistener() {                             @override                             public void onclick(dialoginterface dialog, int id) {                                 toast toast = toast.maketext(ctx, "successfully selected", toast.length_short);                                     toast.show();                                 sparsebooleanarray checked = ((alertdialog) dialog).getlistview().getcheckeditempositions();                                 string str = "";                                 if (checked.get(0)) {                                      savering(animal.getsoundresource());                                 }                                 if (checked.get(1)) {                                     savemsg(animal.getsoundresource());                                 }                                 if (checked.get(2)) {                                     savealarm(animal.getsoundresource());                                 }                                // if (checked.get(3)) {                                    // databasehelper.save_bookmarks(itemslist.get(position).getitemname(), r.drawable.play_btn, itemslist.get(position).getitemtunest());                                    // toast.maketext(ctx, "item added favourites", toast.length_short).show();                                 // }                             }                         })                  .setnegativebutton("cancel", new dialoginterface.onclicklistener() {                     @override                     public void onclick(dialoginterface dialog, int id) {                     }                 });                 dialog = builder.create();                 dialog.show();                 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////             }         });         pos=position;          // animation         // ///////////////////////////         //animate(holder);//function animation         //////////////////////////////          holder.play.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view view) {                  if(postionchange==-1)                 {                     postionchange=position;                 }                 if(postionchange!=position)                 {                     holder.play.setbackgroundresource(r.drawable.play_btn);                 }                 holder.play.setbackgroundresource(r.drawable.pause_btn);// present state                 mediaplayerclass.play(animal.getsoundresource(),ctx);                 if(countlike[0] ==0)                     {                         countlike[0] =1;                     }else  if(countlike[0] ==1)                     {                         //if playing pause                         if(mediaplayerclass.mediaplayer.isplaying())                             mediaplayerclass.mediaplayer.stop();                          t1.recyclerview.setadapter(null);                         t1.customadapter=new customadapter(t1.animallist,ctx);                         t1.recyclerview.setadapter(t1.customadapter);                           holder.play.setbackgroundresource(r.drawable.play_btn); //sound stop show play button                         countlike[0] =2;                     }                     if(countlike[0] >1)                     {                         countlike[0] =0;                         holder.play.setbackgroundresource(r.drawable.play_btn); // click play music, click again stop music                      }                     //setoncompletionlistener                 mediaplayerclass.mediaplayer.setoncompletionlistener(new mediaplayer.oncompletionlistener() {                     @override                     public void oncompletion(mediaplayer mediaplayer) {                         holder.play.setbackgroundresource(r.drawable.play_btn);                     }                 });                 // mediaplayerclass.mediaplayer.start();                  }         });     }         @override         public int getitemcount() {             return animallist.size();         }     //animation     public void animate(recyclerview.viewholder viewholder) {         final animation animanticipateovershoot = animationutils.loadanimation(ctx, r.anim.bounce_interpolator);         viewholder.itemview.setanimation(animanticipateovershoot);     }      //////////////////////////////////////////////////////////////////////////////////////////  } 

enter image description here

here example of music player in samsung mobiles.! when ever play music shows animation , when play next song play song , stops previous playing music , animation.! know how stop media player how change stop animation or music library etc.?

stops previous animation in row , play music animation.!

samsung media player

bellow sample works normal list data recyclerview.

  1. first need save clicked position have apply notifydatasetchanged().
  2. after when list refreshing check saved position actual bind position apply changes need.

    public void onbindviewholder(final myviewholder holder, final int position) {

        holder.tvgroupname.settext(list.get(position).getgroupname());      holder.itemview.setonclicklistener(new view.onclicklistener() {         @override         public void onclick(view v) {               // save position in item click refresh list             pos = position;             notifydatasetchanged();          }     });      // once items started refreshing check save position actual position change text     if (pos == position) {         holder.tvgroupname.settext("testing");     }  } 

hope sample helpful..

and,

i modified class check , hope work..

public class customadapter extends recyclerview.adapter<customadapter.myviewholder> {     private list<animal> animallist;     public context ctx;     public static int postionchange=-1;      public static tab1birds t1;       final int[] countlike = {0};     //public static mediaplayer mediaplayer2 = new mediaplayer();     int pos;     public class myviewholder extends recyclerview.viewholder {         public imageview display;         public textview nametextview;         public imagebutton play,options,menubtn;         public myviewholder(view view) {             super(view);             nametextview = (textview) view.findviewbyid(r.id.nametextview);             play=(imagebutton)view.findviewbyid(r.id.playbtn);             options=(imagebutton)view.findviewbyid(r.id.menubtn);             display=(imageview)view.findviewbyid(r.id.imageview);             menubtn = (imagebutton) view.findviewbyid(r.id.menubtn);             //mediaplayerclass.mediaplayer= new mediaplayer();         }     }     public customadapter(list<animal> movieslist,context ct) {         this.animallist = movieslist;         this.ctx=ct;     }     @override     public myviewholder oncreateviewholder(viewgroup parent, int viewtype) {         view itemview = layoutinflater.from(parent.getcontext())                 .inflate(r.layout.row_list, parent, false);         return new myviewholder(itemview);     }     @override     public void onbindviewholder(final myviewholder holder, final int position) {         final animal animal = animallist.get(position);          final int[] previous = {position};         holder.nametextview.settext(animal.getname());         holder.display.setimageresource(animal.getimageresource());         //////////////////////////////////////////////////////////////////////////////////////////////////////////         holder.options.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                  try {                     if (mediaplayerclass.mediaplayer.isplaying()) {                         holder.play.setbackgroundresource(r.drawable.play_btn);                         mediaplayerclass.mediaplayer.stop();                     }                 } catch (exception ex) {                 }                 dialog dialog;                 final string[] items = {"set ring tune", "set message tune", "set alarm tune"};                 final arraylist itemsselected = new arraylist();                 final alertdialog.builder builder = new alertdialog.builder(ctx);                 builder.settitle("options");                 builder.setmultichoiceitems(items, null,                         new dialoginterface.onmultichoiceclicklistener() {                             @override                             public void onclick(dialoginterface dialog, int selecteditemid,                                                 boolean isselected) {                                 if (isselected) {                                     itemsselected.add(selecteditemid);                                 } else if (itemsselected.contains(selecteditemid)) {                                     itemsselected.remove(integer.valueof(selecteditemid));                                 }                             }                         })                         .setpositivebutton("done!", new dialoginterface.onclicklistener() {                             @override                             public void onclick(dialoginterface dialog, int id) {                                 toast toast = toast.maketext(ctx, "successfully selected", toast.length_short);                                 toast.show();                                 sparsebooleanarray checked = ((alertdialog) dialog).getlistview().getcheckeditempositions();                                 string str = "";                                 if (checked.get(0)) {                                      savering(animal.getsoundresource());                                 }                                 if (checked.get(1)) {                                     savemsg(animal.getsoundresource());                                 }                                 if (checked.get(2)) {                                     savealarm(animal.getsoundresource());                                 }                                 // if (checked.get(3)) {                                 // databasehelper.save_bookmarks(itemslist.get(position).getitemname(), r.drawable.play_btn, itemslist.get(position).getitemtunest());                                 // toast.maketext(ctx, "item added favourites", toast.length_short).show();                                  // }                             }                         })                         .setnegativebutton("cancel", new dialoginterface.onclicklistener() {                             @override                             public void onclick(dialoginterface dialog, int id) {                             }                         });                 dialog = builder.create();                 dialog.show();                 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////             }         });           // animation         // ///////////////////////////         //animate(holder);//function animation         //////////////////////////////          holder.play.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view view) {                  pos=position;                 notifydatasetchanged();                                  }         });          if (pos == position){              holder.play.setbackgroundresource(r.drawable.pause_btn);// present state             mediaplayerclass.play(animal.getsoundresource(),ctx);             if(countlike[0] ==0)             {                 countlike[0] =1;             }else  if(countlike[0] ==1)             {                 //if playing pause                 if(mediaplayerclass.mediaplayer.isplaying())                     mediaplayerclass.mediaplayer.stop();                  t1.recyclerview.setadapter(null);                 t1.customadapter=new customadapter(t1.animallist,ctx);                 t1.recyclerview.setadapter(t1.customadapter);                   holder.play.setbackgroundresource(r.drawable.play_btn); //sound stop show play button                 countlike[0] =2;             }             if(countlike[0] >1)             {                 countlike[0] =0;                 holder.play.setbackgroundresource(r.drawable.play_btn); // click play music, click again stop music              }             //setoncompletionlistener             mediaplayerclass.mediaplayer.setoncompletionlistener(new mediaplayer.oncompletionlistener() {                 @override                 public void oncompletion(mediaplayer mediaplayer) {                     holder.play.setbackgroundresource(r.drawable.play_btn);                 }             });             // mediaplayerclass.mediaplayer.start();         }else {             holder.play.setbackgroundresource(r.drawable.play_btn);         }     }     @override     public int getitemcount() {         return animallist.size();     }     //animation     public void animate(recyclerview.viewholder viewholder) {         final animation animanticipateovershoot = animationutils.loadanimation(ctx, r.anim.bounce_interpolator);         viewholder.itemview.setanimation(animanticipateovershoot);     }  } 

@rajesh


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -