android - Set ImageView on a ListView with ViewBinder depending on RatingBar value -


i have in mainactivity listview shows list of movies i'm populating simplecursoradapter. in activity user able set rating ratingbar , float value saved in database. show on mainactivity next name of movie, rating set in other activity.

i tried use ratingbar indicator , set didn't work. tried use 5 insivible imageviews ( stars) became visible depending on float value didn't work. i'm trying use viewbinder, if statements : float value of rating bar database, parse int , set right drawable imageview.

there no errors in logcat imageview doesn't change @ all... maybe i'm wrong in refreshing list? i'm principiant please me :) doing wrong??????

//this main activity:

public class mainactivity extends listactivity implements onitemclicklistener {

public static final int add_manual = 1;  private cursor cursor; private movieshandler db; private string [] cols = new string [] {moviesdbconstants.movie_title ,    moviesdbconstants.movie_uri}; private int [] views = new int [] { r.id.title , r.id.listimgmovie}; private simplecursoradapter adapter;  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);     db = new movieshandler(this);     cursor = db.getallmovies();     adapter = new simplecursoradapter(this,              r.layout.list, cursor, cols, views, 0);     adapter.setviewbinder(new customviewbinder());     listview lv = getlistview();     lv.setadapter(adapter);     lv.setonitemclicklistener(this);     registerforcontextmenu(lv); }  @override protected void onresume() {     super.onresume();     refreshlist(); }  private void refreshlist() {     cursor = db.getallmovies();      adapter.changecursor(cursor);      adapter.notifydatasetchanged(); } 

// , viewbinder:

private class customviewbinder implements viewbinder {

    @override         public boolean setviewvalue(view view, cursor cursor, int columnindex) {             if (columnindex == cursor.getcolumnindex(moviesdbconstants.movie_rating)) {                 int num = (int) cursor.getfloat(columnindex);                 switch (num){                 case 1:                     ((imageview) view).setbackgroundresource(r.drawable.one_star);                     break;                 case 2:                    ((imageview) view).setbackgroundresource(r.drawable.two_star);                    break;                 case 3:                    ((imageview) view).setbackgroundresource(r.drawable.three_star);                    break;                 case 4:                    ((imageview) view).setbackgroundresource(r.drawable.four_star);                    break;                 case 5:                    ((imageview) view).setbackgroundresource(r.drawable.five_star);                    break;                 }             return true;             }             return false;         }     } 

in android have compare .equals(), not "num == 1"

also should use here switch instead many if in setviewvalue()


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -