代码之家  ›  专栏  ›  技术社区  ›  Prabhat

有人能解释一下Android中的光标吗?

  •  5
  • Prabhat  · 技术社区  · 15 年前

    有人能解释光标究竟是如何工作的吗?还是代码的以下部分的流程?我知道这是子活动,但我不明白光标是如何精确工作的。

    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 回复  |  直到 15 年前
        1
  •  3
  •   Pentium10    15 年前

    光标类似于从数据库资源创建的列表/指针。(在php中,像mysql_query()中的$res一样思考)

    当你奔跑

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

    如果查询联系人,则返回一个光标,该光标是结果中记录的指针。

    然后用这个光标创建一个适配器。适配器是源结果的对象级表示,这次是光标,也就是数据库中的记录。(在php for adapter中,就像智能模板的数组一样,数组就是适配器)

    如果您知道基于事件的编程,那么setonitemlicklistener应该很容易理解。