ContactsAdapter.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:2k
源码类别:

android开发

开发平台:

Java

  1. package irdc.ex05_09;
  2. import android.content.ContentResolver;
  3. import android.content.Context;
  4. import android.database.Cursor;
  5. import android.provider.Contacts;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import android.widget.CursorAdapter;
  10. import android.widget.TextView;
  11. public class ContactsAdapter extends CursorAdapter
  12. {
  13.   private ContentResolver mContent;
  14.   public ContactsAdapter(Context context, Cursor c)
  15.   {
  16.     super(context, c);
  17.     mContent = context.getContentResolver();
  18.   }
  19.   @Override
  20.   public void bindView(View view, Context context, Cursor cursor)
  21.   {
  22.     /* 取得通讯录人员的名字 */
  23.     ((TextView) view).setText(cursor.getString(cursor
  24.         .getColumnIndexOrThrow(Contacts.People.NAME)));
  25.   }
  26.   @Override
  27.   public View newView(Context context, Cursor cursor, ViewGroup parent)
  28.   {
  29.     final LayoutInflater inflater = LayoutInflater.from(context);
  30.     final TextView view = (TextView) inflater.inflate(
  31.         android.R.layout.simple_dropdown_item_1line, parent, false);
  32.     view.setText(cursor.getString(cursor
  33.         .getColumnIndexOrThrow(Contacts.People.NAME)));
  34.     return view;
  35.   }
  36.   @Override
  37.   public String convertToString(Cursor cursor)
  38.   {
  39.     return cursor.getString(cursor.getColumnIndexOrThrow(Contacts.People.NAME));
  40.   }
  41.   @Override
  42.   public Cursor runQueryOnBackgroundThread(CharSequence constraint)
  43.   {
  44.     if (getFilterQueryProvider() != null)
  45.     {
  46.       return getFilterQueryProvider().runQuery(constraint);
  47.     }
  48.     StringBuilder buffer = null;
  49.     String[] args = null;
  50.     if (constraint != null)
  51.     {
  52.       buffer = new StringBuilder();
  53.       buffer.append("UPPER(");
  54.       buffer.append(Contacts.ContactMethods.NAME);
  55.       buffer.append(") GLOB ?");
  56.       args = new String[]
  57.       { constraint.toString().toUpperCase() + "*" };
  58.     }
  59.     return mContent.query(Contacts.People.CONTENT_URI,
  60.         EX05_09.PEOPLE_PROJECTION, buffer == null ? null : buffer.toString(),
  61.         args, Contacts.People.DEFAULT_SORT_ORDER);
  62.   }
  63. }