-2

我有一个 sqlite 数据库,我想从中分组显示数据。但是 sqlite 只显示最后一列的数据。我的代码如下:

        String q="Select * from events";

        Cursor m = eventsDB.rawQuery(q, null);


            if(m.moveToFirst() )
                while(m.moveToNext()){
            {
            String curevent = m.getString(m.getColumnIndex("name"));
            String curdate = m.getString(m.getColumnIndex("date"));

            evname.setText(curevent);
            }

            }
            else {
                evname.setText("Not found");


            }

如何显示所有数据?

4

3 回答 3

0

这就是你告诉 Android 要做的事情。您正在遍历 上的所有行,Cursor同时设置文本;最后一个是要显示的,因为它是最后一行Cursor

于 2013-09-14T19:25:04.707 回答
0

如何显示所有数据?

使用此方法从表中获取所有数据

public String getAllData() {
    String[] columns = new String[] { name, date };
    Cursor c = ourDatabase.query(table_name, columns, null, null, null,
            null, null);
    String someresult = "";
    int iName = c.getColumnIndex(name);
    int iDate = c.getColumnIndex(date);

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
        someresult += c.getString(iName ) + "\n" + c.getString(iDate )
                + "\n";
    }

    return someresult;
}

其中 name 和 date 是您的列名,并且ourDatabaseSQLiteDatabase类的实例。

如果您有更多列,则在字符串数组中添加列名,然后获取每个索引并通过 getString() 获取所有数据。

于 2013-09-14T19:25:23.763 回答
0

如果要将所有名称设置为单个文本视图,请执行此操作。

  String q="Select * from events";

    Cursor m = eventsDB.rawQuery(q, null);
        String allnames="";
         String abc[]={"","","","","","","","","","","","","","",""};
        int q=0
        if(m.moveToFirst() )
            while(m.moveToNext()){
        {
        String curevent = m.getString(m.getColumnIndex("name"));
        String curdate = m.getString(m.getColumnIndex("date"));

        abc[q]=curevent;

        allnames=allnames+abc[q];
        evname.setText(allnames);
        q++
        }

        }
        else {
            evname.setText("Not found");


        }
于 2013-09-14T19:57:02.247 回答