提问人:ZNS 提问时间:12/11/2012 更新时间:12/11/2012 访问量:236
我应该关闭从适配器获取的光标吗?
Should I close cursor gotten from adapter?
问:
如果我有一个 SimpleCursorAdapter 并且我在实例化的适配器上调用 getCursor(),那么我应该在完成它时关闭这个游标,因为 java 是按值传递的?
简单示例:
SimpleCursorAdapter adapter = new SimpleCursorAdapter(.....);
myListView.setAdapter(adapter);
Cursor cursor = adapter.getCursor();
cursor.moveToFirst();
int id = cursor.getInt(0);
...?
如果在此处关闭光标,适配器是否会关闭光标?
答:
2赞
Sam
12/11/2012
#1
如果我有一个 SimpleCursorAdapter 并且我在实例化的适配器上调用 getCursor(),那么我应该在完成它时关闭这个游标,因为 java 是按值传递的?
正如您所说,适配器仍在使用光标,因此不,您不应关闭它。只有在完全完成光标使用后,才应关闭光标。
评论
0赞
ZNS
12/11/2012
我的问题更多的是关于返回的游标是否指向适配器使用的同一游标,因为传递值。但我想按值传递不适用于获取属性?
0赞
Sam
12/11/2012
是的,它是同一个光标。您始终可以在传递到的游标上保存本地引用并测试 。new SimpleCursorAdapter()
cursor == adapter.getCursor()
0赞
Sam
12/11/2012
请注意,请注意您在 Java 中的使用方式......仅用它来比较原始对象(不包括字符串)和实例(如上所述)。如果您不熟悉,请阅读 How do I compare strings in Java?,了解 和 的详细说明。==
==
equals()
评论