开发者社区 问答 正文

SQLite读取全部数据

table中一共有11条记录,每个记录有三个内容"name","address","city"。现在要获取这些记录,但是我写的代码只能显示出一条记录,不知道怎么实现显示全部记录?
public void readData(View v)

{
    DatabaseClass mydb = new DatabaseClass(this);
    SQLiteDatabase readdata = mydb.getReadableDatabase();
    TextView tv = (TextView)findViewById(R.id.readtext);
    Cursor c = readdata.rawQuery("select * from mylistdata", null);
    int[] elementId = {R.id.textView1, R.id.textView2, R.id.textView3}; 
    if(c !=null)
    {
        c.moveToFirst();
        while(c.isAfterLast() == false)
        {
            listData = new ArrayList<GenericListItem>();
            String name = c.getString(c.getColumnIndex(DatabaseClass.NAME));
            String address = c.getString(c.getColumnIndex(DatabaseClass.ADDRESS));
            String city = c.getString(c.getColumnIndex(DatabaseClass.CITY));
            listData.add(new GenericListItem(new String[]{name,address,city}));
            listAdapter = new GenericListAdapter(getApplicationContext(), R.layout.list_layout, listData, elementId);
            result.setAdapter(listAdapter);
            c.moveToNext();
        }
    }

展开
收起
a123456678 2016-07-18 14:00:38 2247 分享 版权
1 条回答
写回答
取消 提交回答
  • 在while循环外面初始化listData ArrayList:

    c.moveToFirst();
    listData = new ArrayList<GenericListItem>();
    while(c.isAfterLast() == false)
    {
       // add value here to listData
      c.moveToNext();
    }

    // set listData datasource to GenericListAdapter here

    listAdapter = new GenericListAdapter(getApplicationContext(),

              R.layout.list_layout, listData, elementId);
    

    result.setAdapter(listAdapter);

    2019-07-17 19:57:47
    赞同 展开评论
问答分类:
问答标签:
问答地址: