oh Change this line in the bindView. int id = this.c.getColumnIndex(android.provider.Contacts.Phones.PERSON_ID);
On Tue, Dec 16, 2008 at 10:26 AM, for android <forandr...@gmail.com> wrote: > > -------------------------------------------------------------------------------------------------------------------------------------------- > public class MyCursorAdapter extends SimpleCursorAdapter { > private Cursor c; > private Context context; > > public MyCursorAdapter(Context context, int layout, Cursor c, > String[] from, int[] to) { > > super(context, layout, c, from, to); > this.c = c; > this.context = context; > // TODO Auto-generated constructor stub > } > > /* (non-Javadoc) > * @see android.widget.SimpleCursorAdapter#bindView(android.view.View, > android.content.Context, android.database.Cursor) > */ > @Override > public void bindView(View view, Context context, Cursor cursor) { > // TODO Auto-generated method stub > ImageView imageView = (ImageView) > view.findViewById(R.id.contact_image); > > int id = this.c.getColumnIndex(Phones._ID); > Uri uri = ContentUris > .withAppendedId(People.CONTENT_URI, this.c.getLong(id)); > > Bitmap bitmap = People.loadContactPhoto(this.context, uri, > R.drawable.icon, null); > > imageView.setImageBitmap(bitmap); > > super.bindView(view, context, cursor); > } > > > > } > > ------------------------------------------------------------------------------- > @Override > public void onCreate(Bundle savedInstanceState) { > super.onCreate(savedInstanceState); > Cursor c = getContentResolver().query(Phones.CONTENT_URI, null, > null, null, null); > startManagingCursor(c); > // Map Cursor columns to views defined in simple_list_item_2.xml > MyCursorAdapter adapter = new MyCursorAdapter(this, > R.layout.my_list, c, > new String[] { Phones.NAME }, > new int[] { R.id.contacts }); > /* ListAdapter adapter = new SimpleCursorAdapter(this, > android.R.layout.simple_list_item_2, c, > new String[] { Phones.NAME, Phones.NUMBER }, > new int[] { android.R.id.text1, android.R.id.text2 > }); > setListAdapter(adapter);*/ > setListAdapter(adapter); > } > > -------------------------------------------------------------------------------------------- > <LinearLayout android:layout_width="fill_parent" > android:layout_height="fill_parent" > xmlns:android="http://schemas.android.com/apk/res/android"> > <ImageView android:id="@+id/contact_image" android:gravity="left" > android:layout_width="wrap_content" > android:layout_height="wrap_content" /> > <TextView android:id="@+id/contacts" > android:layout_width="fill_parent" > android:layout_height="wrap_content" android:textSize="20px" /> > </LinearLayout> > > -------------------------------------------------------------------------------------- > > > On Mon, Dec 15, 2008 at 3:07 PM, Luke w <hit...@gmail.com> wrote: > >> Thanks "for android", i finally extends BaseAdapter and override getView() >> function, it works. >> >> Produce a class to hold the contact people's information like name, >> number, icon, and add all the people to an ArrayList, finally >> setListAdapter(peopleAdapter); >> You see, first i access contact cursor and save all the people's >> information to another structure i made it myself. >> private static ArrayList<ContactItem> contacts = new >> ArrayList<ContactItem>(); >> >> So, it is a stupid method i guess, i think there maybe a more efficient >> method to do this by extends CursorAdapter. >> Do you have any idea? >> >> The key point is how to get the icon cursor, because the name and number >> is easy to access by contact cursor, but the icon cursor is a big problem. >> >> Thanks again and hope for your comment. :) >> >> BR, >> Luke Wang >> >> Stephen Leacock - "I detest life-insurance agents: they always argue that >> I shall some day die, which is not so." >> >> On Fri, Dec 12, 2008 at 6:39 PM, for android <forandr...@gmail.com>wrote: >> >>> public void >>> bindView(View<http://code.google.com/android/reference/android/view/View.html>view, >>> Context<http://code.google.com/android/reference/android/content/Context.html>context, >>> Cursor<http://code.google.com/android/reference/android/database/Cursor.html>cursor){ >>> LayoutInflater inflater = (LayoutInflater) context >>> .getSystemService(Context.LAYOUT_INFLATER_SERVICE); >>> View v = inflater.inflate(layout, view, false); >>> ImageView imageView = (ImageView) v.findViewById(R.id.contact_image); >>> imageView.setImage(contactImage) ; >>> >>> } >>> On Fri, Dec 12, 2008 at 3:49 PM, Luke w <hit...@gmail.com> wrote: >>> >>>> Hi Jarkman, Thanks for your reply, could you please give me some >>>> direction on how to bind the data >>>> in bindView? >>>> >>>> My english is not good enough to understand the document on this part >>>> clearly. so alway confused. >>>> please give me more information on the CursorAdapter class. or other >>>> Adapter. >>>> >>>> Thanks very much. >>>> >>>> BR, >>>> Luke Wang >>>> >>>> Jay Leno - "The reason there are two senators for each state is so that >>>> one can be the designated driver." >>>> >>>> On Fri, Dec 12, 2008 at 6:05 PM, jarkman <jark...@gmail.com> wrote: >>>> >>>>> >>>>> I think you'll need to extend CursorAdapter, and bind the data >>>>> yourself in its bindView. >>>>> >>>>> Richard >>>>> >>>>> >>>>> On Dec 12, 9:59 am, "Luke w" <hit...@gmail.com> wrote: >>>>> > Please look at the image attached, i just want a List looks like >>>>> that, but >>>>> > it is not completed, i need the contact icon to placed to the left of >>>>> each >>>>> > item. what should i do? >>>>> > >>>>> > I want do this like the code below: >>>>> > >>>>> > ListAdapter adapter = new SimpleCursorAdapter(this, >>>>> > R.layout.image_list, c, new String[] { Phones.NAME, >>>>> > Phones.NUMBER, Phones._ID }, new int[] { >>>>> R.id.name, >>>>> > R.id.number, R.id.id }); >>>>> > setListAdapter(adapter); >>>>> > or, should i must extends a SimpleCursorAdapter ? If so, how to? >>>>> please give >>>>> > me some advice or some link to the tutorials. >>>>> > Thanks very much. >>>>> > >>>>> > BR, >>>>> > Luke Wang >>>>> > >>>>> > Robert Orben - "Older people shouldn't eat health food, they need >>>>> all the >>>>> > preservatives they can get." >>>>> > >>>>> > On Fri, Dec 12, 2008 at 12:42 PM, for android <forandr...@gmail.com> >>>>> wrote: >>>>> > > int pplId = managedCursor.getColumnIndex(People._ID); >>>>> > > if (managedCursor.moveToFirst()) { >>>>> > >>>>> > > do { >>>>> > > id = managedCursor.getLong(pplId); >>>>> > >>>>> > > Bitmap bitmap = >>>>> People.loadContactPhoto(this, >>>>> > > ContentUris >>>>> > > .withAppendedId(People.CONTENT_URI, id), >>>>> > > R.drawable.default_image, null); >>>>> > > } while (managedCursor.moveToNext()); >>>>> > >>>>> > > On Fri, Dec 12, 2008 at 9:05 AM, Luke w <hit...@gmail.com> wrote: >>>>> > >>>>> > >> Anyone can help me to get the contact icons ? Help ~ >>>>> > >>>>> > >> BR, >>>>> > >> Luke Wang >>>>> > >>>>> > >> On Thu, Dec 11, 2008 at 4:09 PM, Luke w <hit...@gmail.com> wrote: >>>>> > >>>>> > >>> Hi all, >>>>> > >>> * >>>>> > >>> now, my code below can display the name and major number about >>>>> one of the >>>>> > >>> contacts. * >>>>> > >>>>> > >>> public class MainActivity extends ListActivity { >>>>> > >>>>> > >>> @Override >>>>> > >>> public void onCreate(Bundle savedInstanceState) { >>>>> > >>> super.onCreate(savedInstanceState); >>>>> > >>> Cursor c = getContentResolver().query(Phones.CONTENT_URI, >>>>> null, >>>>> > >>> null, >>>>> > >>> null, null); >>>>> > >>> startManagingCursor(c); >>>>> > >>> // Map Cursor columns to views defined in >>>>> simple_list_item_2.xml >>>>> > >>> ListAdapter adapter = new SimpleCursorAdapter(this, >>>>> > >>> android.R.layout.simple_list_item_2, c, new >>>>> String[] { >>>>> > >>> Phones.NAME, Phones.NUMBER }, new int[] { >>>>> > >>> android.R.id.text1, android.R.id.text2 >>>>> }); >>>>> > >>> setListAdapter(adapter); >>>>> > >>> } >>>>> > >>>>> > >>> } >>>>> > >>>>> > >>> *I want display a list of contacts like this :* >>>>> > >>>>> > >>> |-------------------| >>>>> > >>> icon name >>>>> > >>> number >>>>> > >>> |-------------------| >>>>> > >>> icon name >>>>> > >>> number >>>>> > >>> |-------------------| >>>>> > >>> *... >>>>> > >>> ... >>>>> > >>> could anybody, who familar with the Contact API, give me some >>>>> hints on >>>>> > >>> how to get the contact icon to satisfy the list above. * >>>>> > >>>>> > >>> Thanks very much >>>>> > >>>>> > >>> BR, >>>>> > >>> Luke Wang >>>>> > >>>>> > >>>>> > >>>>> > layout.GIF >>>>> > 4KViewDownload >>>>> >>>>> >>>> >>>> >>>> >>> >>> >>> >> >> >> >> > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---