--------------------------------------------------------------------------------------------------------------------------------------------
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to