获得光标字符串数组 [英] Get String Array from Cursor

查看:123
本文介绍了获得光标字符串数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有45个不同的条目的SQLite数据库,每个:

I have a SQLite Database with 45 different entries, each with:

public static final String TABLE = "Table";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_HOUR = "hour";
public static final String COLUMN_WEEK = "week";
public static final String COLUMN_DAY = "day";
public static final String COLUMN_NAME = "name";
public static final String COLUMN_DESCRIPTION = "description";
public static final String COLUMN_COLOUR = "colour";
public static final String COLUMN_ROOM = "room";

现在我要读出所有。我这样做有以下内容:

now I want to read out all. I Do this with following:

public Cursor fetchAllSubject(){
    Cursor mCursor = database.query(true, TABLE, new String[] {
            COLUMN_ID, COLUMN_HOUR, COLUMN_WEEK, COLUMN_DAY, COLUMN_NAME, COLUMN_DESCRIPTION, COLUMN_COLOUR, COLUMN_ROOM},null
            , null, null, null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;
}

在一个其它的类我有这个code读全力以赴:

In a other class I have this code to read all out:

dao = new DAO(this);
Cursor subjectList = dao.fetchAllSubject();

现在我想为每个条目ID为一个数组,小时,星期,......但我不知道该怎么做。
我第一次尝试了以下内容:

Now I want to have for each entry an array with ID, Hour, week, ... but I have no idea how to do that. My first try was following:

ArrayList<String> mo1h = new ArrayList<String>();
subjectList.moveToFirst();
while(!subjectList.isAfterLast()) {
     mo1h.add(subjectList.getString(subjectList.getColumnIndex(dao.COLUMN_ID)));
     mo1h.add(subjectList.getString(subjectList.getColumnIndex(dao.COLUMN_HOUR)));
     mo1h.add(subjectList.getString(subjectList.getColumnIndex(dao.COLUMN_WEEK)));
     mo1h.add(subjectList.getString(subjectList.getColumnIndex(dao.COLUMN_DAY)));
     mo1h.add(subjectList.getString(subjectList.getColumnIndex(dao.COLUMN_NAME)));
     mo1h.add(subjectList.getString(subjectList.getColumnIndex(dao.COLUMN_DESCRIPTION)));
     mo1h.add(subjectList.getString(subjectList.getColumnIndex(dao.COLUMN_COLOUR)));
     mo1h.add(subjectList.getString(subjectList.getColumnIndex(dao.COLUMN_ROOM)));     
     subjectList.moveToNext();
}

但一切都在mo1h,我不知道如何devide它。
最好的将是为每个一个String []。有任何人的想法?
谢谢!

But everything is in mo1h, and I dont know how to devide it. The best would be to have a String[] for each. Has anybody an Idea? Thanks!

推荐答案

您可以在创建的 Bean类,然后创建一个的ArrayList (集合类)

You can create on Bean class and then create one ArrayList (Collection class)

public class Bean
{
   public Bean();
   String id, hour, week, day, name, description, color, room;
}

现在创建的Bean列表

now create list of Bean

ArrayList<Bean> mo1h = new ArrayList<Bean>();
subjectList.moveToFirst();
while(!subjectList.isAfterLast()) {
Bean b = new Bean();
   b.id = subjectList.getString(subjectList.getColumnIndex(dao.COLUMN_ID));
   b.hour =subjectList.getString(subjectList.getColumnIndex(dao.COLUMN_HOUR));
   ...
   ...
   // all your column
   mo1h.add(b);
}

这篇关于获得光标字符串数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆