Может кто-нибудь, пожалуйста, объясните Курсор в Android? - PullRequest
5 голосов
/ 18 июня 2010

Может кто-нибудь объяснить, как именно работает курсор?Или поток следующей части кода?Я знаю, что это вспомогательное действие и все, но я не понимаю, как именно работает курсор.

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 голосов
/ 18 июня 2010

Курсор похож на список / указатель, созданный из ресурса базы данных. (В PHP думайте как $ res от mysql_query ())

Когда вы запускаете

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

Вы запрашиваете контакты, он возвращает курсор, который является указателем для записей в результатах

Затем вы создаете адаптер из этого курсора. Адаптер представляет собой объектное представление результатов, взятых из источника, на этот раз это курсор, или записи из базы данных. (В PHP для адаптера думайте как массив для шаблонов Smarty, массив является адаптером)

setOnItemClickListener должен быть легким для понимания, если вы знаете программирование на основе событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...