从选定的CursorLoader获取字段

时间:2013-01-03 17:05:44

标签: android cursor android-cursorloader

我刚刚更改了代码以使用CursorLoader,而不是使用折旧的manageCursor()方法。

但不知道如何从当前点击位置的光标获取字段

public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    return new SQLiteCursorLoader(getActivity(), new DatabaseHelper(getActivity()), "SELECT M.id as _id,  M.name as desc FROM myTable M", null);    
}

@Override
public void onListItemClick(ListView l, View v, int position, long id) {

        // before I did, 
        // cursor.moveTo(position);
        // cursor.getInt(1);
        // WHat goes here?

当然,我不需要获取id并重新查询游标已包含的内容。 这将打败这个管理概念的一些观点。

必须有办法访问给定位置的字段。

1 个答案:

答案 0 :(得分:3)

这样做的正确方法是使用

l.getItemAtPosition(position);

这是一个Cursor,因为你的适配器是一个CursorAdapter(对吧?),所以你可以这样做:

Cursor cursor = (Cursor) l.getItemAtPosition(position);

你甚至不需要moveToPosition()的东西。

这相当于l.getAdapter().getItem(position),它是位于位置的光标。您也可以引用适配器并调用

mCursorAdapter.getCursor();