Вы должны создать свой ListAdapter.Например:
private class EfficientAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private Bitmap mIcon1;
private Bitmap mIcon2;
public EfficientAdapter(Context context) {
// Cache the LayoutInflate to avoid asking for a new one each time.
mInflater = LayoutInflater.from(context);
}
/**
* The number of items in the list is determined by the number of speeches
* in our array.
*
* @see android.widget.ListAdapter#getCount()
*/
public int getCount() {
return stations.length;
}
/**
* Since the data comes from an array, just returning the index is
* sufficent to get at the data. If we were using a more complex data
* structure, we would return whatever object represents one row in the
* list.
*
* @see android.widget.ListAdapter#getItem(int)
*/
public Object getItem(int position) {
return position;
}
/**
* Use the array index as a unique id.
*
* @see android.widget.ListAdapter#getItemId(int)
*/
public long getItemId(int position) {
return position;
}
/**
* Make a view to hold each row.
*
* @see android.widget.ListAdapter#getView(int, android.view.View,
* android.view.ViewGroup)
*/
public View getView(final int position, View convertView, ViewGroup parent) {
// A ViewHolder keeps references to children views to avoid unneccessary calls
// to findViewById() on each row.
// When convertView is not null, we can reuse it directly, there is no need
// to reinflate it. We only inflate a new View when the convertView supplied
// by ListView is null.
if (convertView == null) {
convertView = mInflater.inflate(R.layout.listitem, null);
// Creates a ViewHolder and store references to the two children views
// we want to bind data to.
TextView textView = (TextView) convertView.findViewById(R.id.text1);
textView.setText(stations[position]);
} else {
// Get the ViewHolder back to get fast access to the TextView
// and the ImageView.
}
return convertView;
}
}
Этот адаптер вы можете использовать так:
mPlayList.setListAdapter(new EfficientAdapter(ctx));
И, как вы понимаете, в R.layout.listitem вы можете создать свою кнопку.В методе getView - вы должны обработать эту кнопку.
UPD: Пример использования Bitmap: вы можете добавить это в getView:
ImageView im = new ImageView(this);
im.setImageBitmap(bitmap);
convertView.addView(im);