use*_*075 9 android android-cursoradapter
我重写了CursorAdapter,我需要得到最后一项,问题是CursorAdapter实际上有一个get()方法......但是source是一个db,它返回一个普通的对象!(我甚至不知道它是什么,我希望它返回一个Cursor对象......)
无论如何,我如何让它返回我的Wrapper数据库行类的实例?
示例:说我的db有这样的行:
id |名字| 姓
我从那里做了一个班级的人.
现在我想从游标适配器获得一个Person get(int i)方法...
urS*_*Sus 44
好吧,只需使用adapter.getItem()并将其强制转换为Cursor,并且无需像接受的答案那样手动移动光标
Cursor cursor = (Cursor) myCursorAdapter.getItem(position);
String myColumnValue = cursor.getString(cursor.getColumnIndex("YOUR_COLUMN_NAME"));
Run Code Online (Sandbox Code Playgroud)
Sam*_*Sam 21
现在我想从游标适配器获得一个Person get(int i)方法...
这似乎是一个奇怪的要求.我会将Cursor本身(或从CursorAdapter返回的Cursor getItem())传递给我的Activity中的常规方法.但这是创建Person get()方法的基本步骤.
创建Person类:
public class Person {
long id;
String firstName;
String surname;
}
Run Code Online (Sandbox Code Playgroud)
在您的自定义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;
}
Run Code Online (Sandbox Code Playgroud)