Заполнение ListView информацией о курсоре из базы данных, приложения для Android - PullRequest
0 голосов
/ 01 декабря 2011

Я работаю над проектом с двумя другими людьми, и, как вы, вероятно, догадываетесь, немного трудоемко работать с чьим-либо другим кодом.Приложение, которое мы разрабатываем, получает информацию из Интернета, каждый элемент состоит из заголовка, ссылки, поста и даты.Эта информация считывается в курсор, а затем выводится все в один строковый буфер.Это, очевидно, бесполезно, если вы хотите аккуратно отображать информацию в окне эмулятора.Я надеялся, что кто-то может помочь мне понять, как работать с информацией, чтобы ее было легко использовать (т. Е. Каждую запись в одном TextView со всеми записями в просмотре списка).

private void showEvents() {
    SQLiteDatabase db = post.getWritableDatabase();
    Cursor cursor= db.rawQuery("SELECT "+TITLE+", "+LINK+", "+POST+", "+DATE+" FROM "+TABLE_NAME+" "+"ORDER BY "+DATE+" DESC;",null);
    startManagingCursor(cursor);
    TextView tv = new TextView(this);

     // Stuff them all into a big string
     StringBuilder builder = new StringBuilder("");


     while (cursor.moveToNext()) {
        String title = cursor.getString(0);
        String link = cursor.getString(1);
        String post = cursor.getString(2);
        String date= cursor.getString(3);

        builder.append(title).append(": " );
        builder.append(link).append(": " );
        builder.append(post).append(": " );
        builder.append(date).append("\n" ); 

     }


     // Display on the screen
     tv.setText(builder);
     this.setContentView(tv);
 }

Этот код в основном просто выводитвсе, неформатное на экране.Я пытался понять, как войти в цикл while, чтобы захватить каждую сущность (1 из заголовка, ссылки, публикации, даты) и перейти оттуда.

Любой совет приветствуется.

Ответы [ 2 ]

0 голосов
/ 01 декабря 2011

Каждый раз, когда вы вводите этот цикл while, вы читаете другую строку (из-за moveToNext ())

while (cursor.moveToNext()) {
    String title = cursor.getString(0);
    String link = cursor.getString(1);
    String post = cursor.getString(2);
    String date= cursor.getString(3);

    builder.append(title).append(": " );
    builder.append(link).append(": " );
    builder.append(post).append(": " );
    builder.append(date).append("\n" ); 

 }
0 голосов
/ 01 декабря 2011

Я бы посоветовал вам прочитать книгу. Одна из тем, которая будет охватывать эти темы, - «Практика Android», от Manning Publications.

Для этого есть несколько важных обязательных элементов, но ключевой концепцией является «Адаптер», который связывает представления с данными. В конечном итоге вы определите POJO для представления данных в каждой записи, а ваш пользовательский адаптер отобразит из этого POJO в поля просмотра.

...