使用数据库,android app中的光标信息填充ListView

时间:2011-12-01 18:23:35

标签: java android xml android-activity

我正在与另外两个人一起开展一个项目,你可能会猜到它有点需要与别人的代码合作。我们正在开发的应用程序从互联网获取信息,每个项目包括标题,链接,帖子和日期。此信息将读入游标,然后在单个字符串缓冲区中输出。如果要在模拟器窗口中整齐地显示信息,这显然是无用的。我希望有人可以帮助我理解如何使用信息使其易于使用(即一个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循环来捕获每个实体(标题,链接,帖子,日期之一)并从那里开始。

感谢任何建议。

2 个答案:

答案 0 :(得分:0)

我建议你读一本书。一个将涵盖这些主题的是Manning Publications的“Android in Practice”。

有几个重要的必需元素,但关键概念是“适配器”,它将视图与数据连接起来。您最终会定义POJO来表示每条记录中的数据,并且您的自定义适配器会从该POJO映射到视图字段。

答案 1 :(得分:0)

每次进入这个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" ); 

 }