I'm overriding CursorAdapter and I need to get the last item, problem is that CursorAdapter has actually a get() method...but source is a db and it returns a plain object!! (I don't even know what is it, I'd expect it returning a Cursor object instead...)
Neverthless, how can I make it return an instance of my Wrapper db row class?
Example: say my db has rows like these:
id|first name| surname
I'd make a class Person from that.
Now I'd like to have a Person get(int i) method from cursor adapter...
well just use the adapter.getItem() and cast it to Cursor, and there is no need to move the cursor manually like in accepted answer
Cursor cursor = (Cursor) myCursorAdapter.getItem(position);
String myColumnValue = cursor.getString(cursor.getColumnIndex("YOUR_COLUMN_NAME"));
Now I'd like to have a Person get(int i) method from cursor adapter...
This seems like a strange request. I would pass the Cursor itself (or the Cursor returned from CursorAdapter's getItem()
) to a regular method in my Activity instead. But here are the basic steps to create a Person get()
method.
Create your Person class:
public class Person {
long id;
String firstName;
String surname;
}
And in your custom CursorAdapter simply use a method like this:
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;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With