请问有人能解释一下Android中的Cursor是什么吗?

5

有人能解释一下光标是如何工作的吗?或者以下代码部分的流程是什么?我知道这是子活动,但我不太清楚光标的确切工作方式。

final Uri data = Uri.parse("content://contacts/people/");
final Cursor c = managedQuery(data, null, null, null, null);
String[] from = new String[] { People.NAME };
int[] to = new int[] { R.id.itemTextView };
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.listitemlayout, c, from, to);
ListView lv = (ListView) findViewById(R.id.contactListView);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
     public void onItemClick(AdapterView<?> parent, View view, int pos, long id) { 

          c.moveToPosition(pos);
          int rowId = c.getInt(c.getColumnIndexOrThrow("_id"));
          Uri outURI = Uri.parse(data.toString() + rowId);
          Intent outData = new Intent();
          outData.setData(outURI);
          setResult(Activity.RESULT_OK, outData);
          finish();
     }
});

谢谢。
1个回答

3

游标就像是从数据库资源创建的列表/指针。 (在PHP中,类似于从mysql_query()创建的$res)

当您运行时

managedQuery(data, null, null, null, null);

你查询联系人时,它会返回一个指向结果记录的指针,即Cursor。
然后,你可以从这个Cursor创建一个适配器。适配器是从源获取的结果的对象级表示,这次是来自游标的记录,也就是数据库中的记录。(在PHP中,适配器类似于Smarty模板中的数组)
如果你了解基于事件的编程,那么setOnItemClickListener应该很容易理解。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接