android - Using custom simpleCursorAdapter -


i trying access list-activity using custom adapter.i have tried directly without using custom adapter working because want add more functions in list-view want implement custom adapter.now have tried getting empty list-view no data visible. list-activity

public class mainactivity extends listactivity {      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);          string selection = mediastore.audio.media.is_music + " != 0";           string[] projection = {                     mediastore.audio.media._id,                     mediastore.audio.media.artist,                     mediastore.audio.media.title,                     mediastore.audio.media.data,                     mediastore.audio.media.display_name,                     mediastore.audio.media.duration,              };             //query               musiccursor = this.managedquery(mediastore.audio.media.external_content_uri,projection,selection,null,sortorder);             music_column_index = musiccursor.getcolumnindexorthrow(mediastore.audio.media.data);               int a[]= new int[]{r.id.titlesong,r.id.artist};               custom_adapter adapter = new custom_adapter(this,r.layout.music_items, musiccursor, new string[]{mediastore.audio.media.title,mediastore.audio.media.artist} ,a);              this.setadapter(adapter);              }     } 

custom-adapter

    public class custom_adapter extends simplecursoradapter {       private context mcontext;     private context appcontext;     private int layout;     private cursor cr;     private final layoutinflater inflater;      public custom_adapter(context context,int layout, cursor c,string[] from,int[] to) {         super(context,layout,c,from,to);         this.layout=layout;         this.mcontext = context;         this.inflater=layoutinflater.from(context);         this.cr=c;     }      @override     public void bindview(view view, context context, cursor cursor) {         // todo auto-generated method stub         super.bindview(view, context, cursor);      view=inflater.inflate(layout, null, false);         textview titles=(textview)view.findviewbyid(r.id.titlesong);         textview artists=(textview)view.findviewbyid(r.id.artist);         int title_index;         int artist_index;         cursor.movetofirst();         while(cursor.islast()){              title_index=cursor.getcolumnindexorthrow(mediastore.audio.media.display_name);             artist_index=cursor.getcolumnindexorthrow(mediastore.audio.media.artist);             titles.settext(cursor.getstring(title_index));             artists.settext(cursor.getstring(artist_index));             cr.movetonext();             }      }      @override     public view getview(int position, view convertview, viewgroup parent) {         // todo auto-generated method stub          return convertview;     } } 

when extending cursor adapter should override methods bindview , newview. bindview method used bind data given view such setting text on textview. newview method used inflate new view , return it, don't bind data view @ point. adapters use getview function when extending cursor adapter should use bindview , newview.

    public class custom_adapter extends simplecursoradapter {              private context mcontext;             private context appcontext;             private int layout;             private cursor cr;             private final layoutinflater inflater;              public custom_adapter(context context,int layout, cursor c,string[] from,int[] to) {                 super(context,layout,c,from,to);                 this.layout=layout;                 this.mcontext = context;                 this.inflater=layoutinflater.from(context);                 this.cr=c;             }              @override             public view newview (context context, cursor cursor, viewgroup parent) {                     return inflater.inflate(layout, null);             }              @override             public void bindview(view view, context context, cursor cursor) {                 super.bindview(view, context, cursor);                 textview titles=(textview)view.findviewbyid(r.id.titlesong);                 textview artists=(textview)view.findviewbyid(r.id.artist);                  int title_index=cursor.getcolumnindexorthrow(mediastore.audio.media.display_name);                 int artist_index=cursor.getcolumnindexorthrow(mediastore.audio.media.artist);                  titles.settext(cursor.getstring(title_index));                 artists.settext(cursor.getstring(artist_index));              }      } 

Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -