Android: Listview не отображается должным образом с simpleCursorAdapter - PullRequest
0 голосов
/ 16 февраля 2012

Я некоторое время боролся с моим довольно простым приложением. Это мой onCreate в моем классе listactivity:

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    DB db = new DB(this);
    db.open();
    cur = db.getData(); //cursor with all data from an SQLite db

    String[] from = new String[] { DB.KEY_FIRSTNAME,
            DB.KEY_LASTNAME, DB.KEY_BDATE};
    int[] to = new int[] { NOT SURE WHAT TO PUT HERE };
    startManagingCursor(cur);
    setListAdapter(new SimpleCursorAdapter(this, 
    android.R.layout.simple_list_item_1, cur, from, to));

    db.close();

    }

Метод getData () возвращает курсор из базы данных sqlite. int [], используемый определенным адаптером, - вот где я думаю, что проблема лежит, но я понятия не имею, как ее решить. Список, который я выхожу, либо пуст. Только строки, напоминающие количество записей в базе данных или только 1 из столбцов. Я пробовал int [] {android.R.id.text1, android.R.id.text1, android.R.id.text1, android.R.id.text1} и меньше записей, а text2 и Ive теперь пытались просто создайте текстовое представление и назовите его, но затем оно снова станет совершенно пустым.

Надеюсь, вы поможете мне обернуть голову вокруг этого. Спасибо!

1 Ответ

3 голосов
/ 16 февраля 2012

Ваша переменная to хранит значения R.id, на которые вы хотите отобразить ваши данные.Например, если макет (android.R.layout.simple_list_item_1) содержит три текстовых представления с именами fName, lName и bDate, вы поместите их в int array и отобразите данные в полях from в экранКомпоненты компоновки в полях to.

int[] to = new int[] {R.id.fName, R.id.lName, R.id.bDate};
...