Android for循环列表

时间:2015-07-09 16:46:24

标签: android database list calendar

我有一个列表,其中填充了从数据库中获取的数据。 列表的数据将传递给视图以显示它们。对于从数据库中获取的每个id,我想在日历中添加一天,然后,我在数组中添加了我需要的id,以便对它们进行排序。 问题是列表中的循环,而不是根据数组中的id数进行迭代,循环继续而不停止...我希望我解释,这是所有的代码

private Integer[] id_nome_op;
public void checkOperatori() { 
    SQLiteDatabase db = new DatabaseHelper(getActivity()).getReadableDatabase();
    String OPERATORI = "SELECT _id, ...... ORDER BY _id ASC";
    Cursor cur = db.rawQuery(OPERATORI, null);
    int count = cur.getCount();
    id_nome_op = new Integer[count];
    nome_op = new String[count];
    cognome_op = new String[count];
    for (int i = 0; i < count; i++) {
        cur.moveToNext();
        id_nome_op[i] = cur.getInt(0);
        nome_op[i] = cur.getString(1);
        cognome_op[i] = cur.getString(2);

        mWeekView.setData(nome_op, cognome_op);
    }
    cur.close();
    db.close();

}


@Override
public List<WeekViewEvent>onMonthChange(int newYear, int newMonth) {
       SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd");
       final String strDate = simpleFormat.format(calendarioFooter.getTime());

       List<WeekViewEvent> events = new ArrayList<WeekViewEvent>();
       SQLiteDatabase db = new DatabaseHelper(getActivity()).getReadableDatabase();
       String tabella_op = "SELECT m._id, m.id_operatore, ...........";
       Cursor cur = db.rawQuery(tabella_op, null);
 while (cur.moveToNext()) {
        startTime = (Calendar) calendarioFooter.clone();
        id_appuntamento = cur.getString(0);
        id_operator = cur.getInt(1);
        dat = cur.getString(2);
        ora_iniz = cur.getString(3);
        ora_fin = cur.getString(4);
        id_servizio = cur.getString(5);
        id_client = cur.getString(6);
        nome_cliente = cur.getString(7);
        cognome_cliente = cur.getString(8);
        nome_operatore = cur.getString(9);
        colore_serv = cur.getInt(10);
        tipo_serv = cur.getString(11);

 int giorno_ok = Integer.parseInt(dat.substring(8, 10));
 int ora_inizio = Integer.parseInt(ora_iniz.substring(0, 2));
 int minuto_inizio = Integer.parseInt(ora_iniz.substring(3, 5));
 int ora_fine = Integer.parseInt(ora_fin.substring(0, 2));
 int minuto_fine = Integer.parseInt(ora_fin.substring(3, 5));


int size = id_nome_op.length;//array id
for(int i = 1; i< size; i++){

        if (i == 1) {

            startTime.set(Calendar.DAY_OF_MONTH, giorno_ok);


        } else if (i == 2) {

            startTime.set(Calendar.DAY_OF_MONTH, giorno_ok);
            startTime.add(Calendar.DATE, 1);

        } else if (i == 3) {

            startTime.set(Calendar.DAY_OF_MONTH, giorno_ok);
            startTime.add(Calendar.DATE, 2);

        }

        startTime.set(Calendar.HOUR_OF_DAY, ora_inizio);
        startTime.set(Calendar.MINUTE, minuto_inizio);
        startTime.set(Calendar.MONTH, newMonth - 1);
        startTime.set(Calendar.YEAR, newYear);

        Calendar endTime = (Calendar) startTime.clone();
        endTime.set(Calendar.HOUR_OF_DAY, ora_fine);
        endTime.set(Calendar.MINUTE, minuto_fine);

WeekViewEvent event = new WeekViewEvent(id_appuntamento, getEventTitle(startTime), startTime, endTime);
        event.setColor(colore_serv);
        events.add(event);
        }
    }
    cur.close();
    db.close();
    return events;
}

0 个答案:

没有答案