2012-08-29 113 views
8

我重写的CursorAdapter,我需要得到最后一个项目,问题是,CursorAdapter的具有实际上是一个get()方法...但来源是一个数据库,它返回一个普通的对象! (我甚至不知道它是什么,我希望它返回一个游标对象,而不是...)从CursorAdapter.get()返回对象

Neverthless,我怎样才能使它回到我的包装分贝行类的实例?

例: 说我的数据库有这样的行:

ID |名字|姓

我想让一班从那。

现在,我想能有一个人得到(int i)以从光标适配器方法...

回答

19

现在,我想能有一个人得到(int i)以从光标适配器方法。 ..

这似乎是一个奇怪的要求。我会将Cursor本身(或从CursorAdapter的getItem()返回的游标)转换为我的Activity中的常规方法。 这里的基本步骤来创建一个Person get()方法。

创建Person类:

public class Person { 
    long id; 
    String firstName; 
    String surname; 
} 

而且在自定义的CursorAdapter简单地使用这样的方法:

public Person get(int position) { 
    Cursor cursor = getCursor(); 
    Person person; 
    if(cursor.moveToPosition(position)) { 
     person = new Person(); 
     person.id = cursor.getLong(cursor.getColumnIndex("_id")); 
     person.firstName = cursor.getString(cursor.getColumnIndex("firstName")); 
     person.surname = cursor.getString(cursor.getColumnIndex("surname")); 
     results.add(person); 
    } 

    return person; 
} 
42

也只是使用adapter.getItem(),并将其转换为指针,并且没有必要像接受的答案那样手动移动光标

Cursor cursor = (Cursor) myCursorAdapter.getItem(position); 
String myColumnValue = cursor.getString(cursor.getColumnIndex("YOUR_COLUMN_NAME")); 
+6

这是正确的并且应该接受的答案 – user123321

+0

棒极了!从未知道。我的生活节省了几个小时! – barmaley