problem displaying music list using custom adapters


Last Updated:

  1. rahul_kalidindi

    rahul_kalidindi New Member This Topic's Starter

    Joined:
    Apr 20, 2010
    Messages:
    2
    Likes Received:
    0
    Hi,
    I am trying to display the list of songs using array adapters. But the problem is i couldnt display the list and only empty screen with preset background is showing up. Here's the code...All the thee are seperate classes... Plz help me...


    public class SongsAdapter extends ArrayAdapter<SongsList>{
    private Context context;
    TextView tvTitle;
    TextView tvMovie;
    TextView tvSinger;
    String s;


    public SongsAdapter(Context context, int resource,

    int textViewResourceId, String title) {
    super(context, resource, textViewResourceId);
    this.context=context;
    }


    public View getView(int position, View convertView, ViewGroup parent) {

    final int i=position;

    List<SongsList> listSongs = new ArrayList<SongsList>();

    String title = listSongs.get(i).gettitleName().toString();

    String album = listSongs.get(i).getmovieName().toString();

    String artist = listSongs.get(i).getsingerName().toString();
    String imgal = listSongs.get(i).gettitleName().toString();

    LayoutInflater inflater = ((Activity) context).getLayoutInflater();

    View v = inflater.inflate(R.layout.row, null);
    tvTitle=(TextView)v.findViewById(R.id.text2);
    tvMovie=(TextView)v.findViewById(R.id.text3);
    tvSinger=(TextView)v.findViewById(R.id.text1);
    tvTitle.setText(title);
    tvMovie.setText(album);
    tvSinger.setText(artist);

    final ImageView im=(ImageView)v.findViewById(R.id.image);

    s="http://www.gorinka.com/"+imgal;
    String imgPath=s;
    AsyncImageLoaderv asyncImageLoaderv=new AsyncImageLoaderv();
    Bitmap cachedImage = asyncImageLoaderv.loadDrawable(imgPath, new AsyncImageLoaderv.ImageCallback() {
    public void imageLoaded(Bitmap imageDrawable, String imageUrl) {

    im.setImageBitmap(imageDrawable);

    }
    });
    im.setImageBitmap(cachedImage);

    return v;


    }

    public class imageloader implements Runnable{

    private String ss;

    private ImageView im;

    public imageloader(String s, ImageView im) {

    this.ss=s;
    this.im=im;
    Thread thread = new Thread(this);
    thread.start();
    }
    public void run(){
    try {

    HttpGet httpRequest = null;

    httpRequest = new HttpGet(ss);
    HttpClient httpclient = new DefaultHttpClient();
    HttpResponse response = (HttpResponse) httpclient.execute(httpRequest);
    HttpEntity entity = response.getEntity();
    BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity);
    InputStream is = bufHttpEntity.getContent();

    Bitmap bm = BitmapFactory.decodeStream(is);

    Log.d("img","img");

    is.close();

    im.setImageBitmap(bm);

    } catch (Exception t) {

    Log.e("bitmap url", "Exception in updateStatus()", t);

    }


    }

    }



    public class SongsList {

    private String titleName;
    private String movieName;
    private String singerName;
    private String imagePath;
    private String mediaPath;
    // Constructor for the SongsList class
    public SongsList(String titleName, String movieName, String singerName,String imagePath,String mediaPath ) {
    super();
    this.titleName = titleName;
    this.movieName = movieName;
    this.singerName = singerName;
    this.imagePath = imagePath;
    this.mediaPath = mediaPath;
    }


    public String gettitleName()

    {
    return titleName;
    }
    public void settitleName(String titleName) {
    this.titleName = titleName;
    }
    public String getmovieName()
    {
    return movieName;
    }
    public void setmovieName(String movieName) {
    this.movieName = movieName;
    }
    public String getsingerName()
    {
    return singerName;
    }
    public void setsingerName(String singerName) {
    this.singerName = singerName;
    }
    public String getimagePath()
    {
    return imagePath;
    }
    public void setimagePath(String imagePath) {
    this.imagePath = imagePath;
    }
    public String getmediaPath()
    {
    return mediaPath;
    }
    public void setmediaPath(String mediaPath) {
    this.mediaPath = mediaPath;
    }


    }





    public class MusicListActivity extends Activity {

    @Override

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.openadiuofile);

    ListView list = (ListView)findViewById(R.id.list1);

    SongsAdapter adapter = new SongsAdapter(this,R.layout.row, R.id.text2, null);
    list.setAdapter(adapter);

    }
     

    Advertisement
  2. rahul_kalidindi

    rahul_kalidindi New Member This Topic's Starter

    Joined:
    Apr 20, 2010
    Messages:
    2
    Likes Received:
    0
    I have got the following answer from Stack overflow... Can anyone please elaborate the answer and provide some code of how to do it...??? plzzz... need it badly...


    The easiest way to solve this is to create the List of all SongList to display before creating your adapter and then add them to your ArrayAdapter via the super constructor in the Constructor of your Adapter. Now the Adapter can work properly and call your getView method.
     

Share This Page

Loading...