ratingbar issue in android -


i make application in display rate-bar on listview , display other 2 widget. got problem in adapter when rate list item , scroll list down , top, rated item clear there no rating display on particular item

let have give 3 star 1st item , scroll down , it, , became 0

here code :::

package com.appfavorits;  import java.util.arraylist;  import android.content.context; import android.graphics.drawable.drawable; import android.util.log; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.imageview; import android.widget.ratingbar; import android.widget.textview; import android.widget.toast;  public class listviewcustomadapter extends baseadapter {      public context context;     layoutinflater inflator;     arraylist<comment> appname;     arraylist<comment> packagenm;     drawable[] alicon;     static float[] rating;      public listviewcustomadapter(context context, arraylist<comment> appname,             arraylist<comment> packagenm, drawable[] alicon) {         super();          this.context = context;         this.appname = appname;         this.packagenm = packagenm;         this.alicon = alicon;         inflator = layoutinflater.from(context);         rating = new float[appname.size()];          // log.i("parse adapter ", " date adapter -> " +         // arr_scheduleddeparturetime[1]);      }      public int getcount() {         // todo auto-generated method stub         return appname.size();      }      public object getitem(int position) {         // todo auto-generated method stub         return appname.get(position);     }      public long getitemid(int position) {         // todo auto-generated method stub         return 0;     }      public static class viewholder {         imageview imgvfavrowiconappicon;         textview txvxfavrowiconappname;         ratingbar ratingbar1;      }      public view getview(int position, view convertview, viewgroup parent) {         // todo auto-generated method stub         // view vi=convertview;         // view view = null;         viewholder viewholder;          if (convertview == null) {             viewholder = new viewholder();             convertview = inflator.inflate(r.layout.outbox_list_item, null);             viewholder.ratingbar1 = (ratingbar) convertview                     .findviewbyid(r.id.ratingbar1);             ratingbar.onratingbarchangelistener l = new ratingbar.onratingbarchangelistener() {                 public void onratingchanged(ratingbar ratingbar, float rating,                         boolean fromtouch) {                     /*                      * integer myposition=(integer)ratingbar.gettag(); rowmodel                      * model=getmodel(myposition);                      *                       * model.rating=rating;                      *                       * linearlayout parent=(linearlayout)ratingbar.getparent();                      * textview label=(textview)parent.findviewbyid(r.id.label);                      */                      // label.settext(model.tostring());                     log.i("tag", "rate" + rating);                 }             };              viewholder.ratingbar1.setonratingbarchangelistener(l);              viewholder.txvxfavrowiconappname = (textview) convertview                     .findviewbyid(r.id.txvxfavrowiconappname);             viewholder.imgvfavrowiconappicon = (imageview) convertview                     .findviewbyid(r.id.imgvfavrowiconappicon);             // viewholder.ratingbar1 = (ratingbar)             // convertview.findviewbyid(r.id.ratingbar1);             convertview.settag(viewholder);          } else {             viewholder = (viewholder) convertview.gettag();          }          viewholder.imgvfavrowiconappicon.setimagedrawable(alicon[position]);         viewholder.txvxfavrowiconappname.settext(appname.get(position)                 .tostring());          viewholder.ratingbar1.settag(new integer(position));         viewholder.ratingbar1.setrating(0);         /*          * viewholder.ratingbar1.setontouchlistener(new ontouchlistener() {          *           * @override public boolean ontouch(view v, motionevent event) { if          * (event.getaction() == motionevent.action_up) { // todo perform          * action here } return true; } });          */         return convertview;      } } 

you getitemid() method in adapter class should return position not 0.

public long getitemid(int position) {         // todo auto-generated method stub         return position;     } 

update:

i had added listview checkbox scrolling issue. same should apply here, try position of ratingbar inside onratingchanged() using ratingbar.gettag(); , set current rating it.


Comments

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -