Search This Blog

Thursday, September 30, 2010

android load contact photos to a list

Programmer Question

Hello I have this code:`public class MaxsapListAdapter extends BaseAdapter {



    private LayoutInflater mInflater;
private Bitmap mIcon1;
private Bitmap mIcon2;
private Bitmap mIconCall;
private String[] DATA;

MaxsapListAdapter(Context context, String[] DATA) {
// Cache the LayoutInflate to avoid asking for a new one each time.
mInflater = LayoutInflater.from(context);

// Icons bound to the rows.
mIcon1 = BitmapFactory.decodeResource(context.getResources(),
R.drawable.icon48x48_1);
mIcon2 = BitmapFactory.decodeResource(context.getResources(),
R.drawable.icon48x48_2);
mIconCall = BitmapFactory.decodeResource(context.getResources(), R.drawable.call);
this.DATA = DATA;
}

/**
* 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 DATA.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(int position, View convertView, ViewGroup parent) {
// A ViewHolder keeps references to children views to avoid unneccessary
// calls
// to findViewById() on each row.
ViewHolder holder;

// 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.list_item_icon_text, null);

// Creates a ViewHolder and store references to the three children
// views
// we want to bind data to.
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.text);
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
holder.btn = (ImageButton) convertView.findViewById(R.id.button);
convertView.setTag(holder);
} else {
// Get the ViewHolder back to get fast access to the TextView
// and the ImageView.
holder = (ViewHolder) convertView.getTag();
}
// Bind the data efficiently with the holder.
holder.text.setText(DATA[position]);
holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);
holder.btn.setImageBitmap(mIconCall);
holder.btn.setId((int)this.getItemId(position));
holder.btn.setFocusable(false);
holder.btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.e("maxsap","--------*ButtonClicked*---------");
Log.e("maxsap","--------"+v.setTag(key, tag)+"---------");
Intent callIntent = new Intent(v.getContext(),PhoneCall.class);
Log.e("maxsap",PhoneCall.class.toString());
startActivity(callIntent);
}
});
return convertView;
}

class ViewHolder {
TextView text;
ImageView icon;
ImageButton btn;
}
}`


which loads some arbitrary data array on a list and sets some example icons too,I would like to be able to use users contacts on my list next to users name e.g. the list will be as many rows as contacts user has on his phone and in every contact that there is a photo load that photo next to contacts name else load a blank image, is this possible? and how?



regards maxsap.



Find the answer here

No comments:

Post a Comment

Related Posts with Thumbnails