2010-03-25 5 views

ответ

4

Вернуть курсор, например: getList() с другого класса до текущего класса ListView.

objItem = new Contacts(this); 

this.cur = objItem.getList(); 
this.startManagingCursor(this.cur); 

ListAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cur, 
     new String[] { ContactsContract.Contacts.DISPLAY_NAME}, new int[] { android.R.id.text1}); 

setListAdapter(adapter); 

в классе у вас есть метод, возвращающий Курсор

public Cursor getList() { 
     // Get the base URI for the People table in the Contacts content 
     // provider. 
     Uri contacts = ContactsContract.Contacts.CONTENT_URI; 
     // Make the query. 
     ContentResolver cr = ctx.getContentResolver(); 
     // Form an array specifying which columns to return. 
     String[] projection = new String[] { ContactsContract.Contacts._ID, 
       ContactsContract.Contacts.DISPLAY_NAME }; 

     Cursor managedCursor = cr.query(contacts, projection, null, null, 
       ContactsContract.Contacts.DISPLAY_NAME 
         + " COLLATE LOCALIZED ASC"); 
     return managedCursor; 
    } 
+0

Еще раз спасибо Pentium10, я был бы в состоянии использовать этот код, даже если я не реализовал контент-провайдера? – jcrowson

+0

Я только что скопировал это. Вы используете метод 'Cursor cur = db.query (...)' и возвращаете переменную Cursor. – Pentium10

+0

@ Pentium10 вы можете решить эту проблему, мне нужна помощь http://stackoverflow.com/questions/38435531/android-setting-sqlite-database-values-in-an-listview –

Смежные вопросы