Android - 在ArrayListAdapter中使用getItemID

时间:2014-08-11 15:58:39

标签: android arraylist android-arrayadapter

我已经搜索过SO和网络,寻找解决问题的方法。

我正在尝试用ArrayListAdapter替换SimpleCursorAdapter。

我已经成功创建了我的Adapter类,现在需要访问数组的_id值才能完成一些必要的处理。

我发现这个code我认为会解决我的问题,但是我收到一条错误,指出我的适配器中未定义getCursor()。

@Override
public long getItemId(int position) {
Cursor cursor = getCursor();
cursor.moveToPosition(position);
return cursor.getLong(mCursor.getColumnIndex("_id"));

}

我的适配器中没有光标,所以我很困惑...... ArrayList适配器在实现时工作正常。但请注意,当我将_id字段添加为Adapter类的成员时,字段中仅显示0,但所有其他字段数据都是准确的。如果我直接查询我的数据库,我会收到所有预期的字段,并且都是准确的。

如何访问光标?而且,我如何访问_id值?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

ArrayAdapterSimpleCursorAdapter是两个不同的东西,有两种不同的方式。

Cursor用于从SQLite数据库中读取数据,SimpleCursorAdapter用于读取此游标中的数据,但ArrayAdapter可用于List或数组。

因此,正如您所理解的那样,您在Cursor中只有ArrayAdapter但只有List /数组(仅限数据!)。

ArrayAdaptergetItemId由返回position实现,因为它是列表/数组中的唯一位置。