有人可以解释光标是如何工作的吗?还是以下部分代码的流程?我知道这是子活动,但我不明白Cursor是如何工作的.
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();
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢.
光标就像从数据库资源创建的列表/指针。(在 PHP 中,就像 mysql_query() 中的 $res 一样)
当你跑步时
managedQuery(data, null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
你查询联系人,它返回一个 Cursor,它是结果中记录的指针
然后,您从此游标创建一个适配器。适配器是从源获取的结果的对象级表示,这次是游标,也称为数据库中的记录。(在 PHP 中,适配器就像 Smarty 模板的数组一样,数组就是适配器)
如果您了解基于事件的编程,那么 setOnItemClickListener 应该很容易理解。