26 Mayıs 2011 Perşembe

ListView'ı SimpleCursorAdapter ile bağlamak




public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main);

ListView lv1 = (ListView) findViewById(R.id.lv1);
lv1.setAdapter(getContactsAdapter());
}

private SimpleCursorAdapter getContactsAdapter() {
Cursor cursor = getCursor();
SimpleCursorAdapter sca = new SimpleCursorAdapter(
this,
R.layout.list_layout,
cursor,
new String[] { "DISPLAY_NAME", "_id" },
new int[] { R.id.name_entry, R.id.number_entry });
return sca;
}

private Cursor getCursor() {
String[] projection = null; // new String[]{
// ContactsContract.Contacts.DISPLAY_NAME,
// ContactsContract.Contacts.PHOTO_ID };

// DISPLAY_NAME LIKE ? AND HAS_PHONE_NUMBER = ?
String selection = ContactsContract.Contacts.DISPLAY_NAME
+ " LIKE ? AND " + ContactsContract.Contacts.HAS_PHONE_NUMBER
+ " = ?";

// Adı A ile başlayan ve telefon numarası olanlar
String[] selectionArgs = new String[] { "A%", "1" };

// Sıralama _ID ye göre tersten olsun
String sort = ContactsContract.Contacts._ID + " DESC";

Cursor cursor = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, projection, selection,
selectionArgs, sort);
return cursor;
}

2 yorum:

  1. iyi günler efendim ben burhan. Android üzerinde bir uygulama yapmaya çalışıyorumda, acaba bu örnekteki attribute sayısını daha fazla yaparsak mesala isim,mail,telefon,yas bilgilerini tutmak gibi cursor nasıl degiştirebiliriz. Teşekkürler

    YanıtlaSil
  2. http://developer.android.com/reference/android/provider/ContactsContract.Contacts.html

    Bu sayfada çekilebilecek alanlar mevcut. Yardımı olur umarım.

    YanıtlaSil