Ok, fatto.
Davvero l'ultima cosa:
Ora devo settare il calendario con la data di ogni evento preso dal db.
Nel db ho memorizzato la data con il formato"yyyy-mm-dd", per ottenere il giorno da questa data ho utilizzato il metodo
substring()(per ora faccio così, poi vedrò se memorizzare la data in altro modo).
Quindi, prima di leggere ogni record imposto il calendario alla data odierna, leggo la data dal db e la setto al calendario ma non ottengo il risultato sperato, cioè viene assegnato solo il primo evento.
Sbaglio qualcosa con il calendario?
@Override
public List<WeekViewEvent> onMonthChange(int newYear, int newMonth) {
//converto il calendario per la query
SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd");
final String strDate = simpleFormat.format(calendar.getTime());
// Populate the week view with some events.
List<WeekViewEvent> events = new ArrayList<WeekViewEvent>();
SQLiteDatabase db = new DatabaseHelper(getActivity()).getReadableDatabase();
String tabella_op = "SELECT m.id_operatore, " +
"m.data, " +
"m.ora_inizio, " +
"m.minuti_inizio, " +
"m.ora_fine, " +
"m.minuti_fine, " +
"m.id_servizio, " +
"c._id, " +
"c.nome, " +
"c.cognome, " +
"o.nome, " +
"s.colore " +
"FROM Movimenti m " +
"LEFT JOIN Clienti c ON (m.id_cliente = c._id) " +
"LEFT JOIN Servizi s ON (m.id_servizio = s._id) " +
"LEFT JOIN Operatori o ON (o._id = m.id_operatore) " +
"AND m.data LIKE '" + strDate + "' ORDER BY m.id_operatore ASC";
Cursor cur = db.rawQuery(tabella_op, null);
while (cur.moveToNext()) {
startTime = Calendar.getInstance();
id_operator = cur.getInt(0);
dat = cur.getString(1);
ora_iniz = cur.getInt(2);
minuto_iniz = cur.getInt(3);
ora_fin = cur.getInt(4);
minuto_fin = cur.getInt(5);
id_servizio = cur.getString(6);
id_client = cur.getString(7);
nome_cliente = cur.getString(8);
cognome_cliente = cur.getString(9);
nome_operatore = cur.getString(10);
colore_serv = cur.getInt(11);
//RICAVO GIORNO MESE E ANNO DALLA DATA NEL DB
int giorno_ok = Integer.parseInt(dat.substring(8, 10));
int mese_ok = Integer.parseInt(dat.substring(5, 7));
int anno_ok = Integer.parseInt(dat.substring(0, 4));
startTime.add(Calendar.DAY_OF_MONTH, giorno_ok);
/**
* PER ORA HO 3 OPERATORI, ASSEGNO GLI EVENTI AD OGNI OPERARTORE
*/
if(id_operator == 1){
startTime = Calendar.getInstance();
}else if(id_operator == 2){
startTime.add(Calendar.DATE, 1);
}else if(id_operator == 3){
startTime.add(Calendar.DATE, 2);
}
//inizio
startTime.set(Calendar.HOUR_OF_DAY, ora_iniz);
startTime.set(Calendar.MINUTE, minuto_iniz);
startTime.set(Calendar.MONTH, newMonth-1);
startTime.set(Calendar.YEAR, newYear);
//fine
Calendar endTime = (Calendar) startTime.clone();
endTime.set(Calendar.HOUR_OF_DAY, ora_fin);
endTime.set(Calendar.MINUTE, minuto_fin);
//endTime.set(Calendar.MONTH, newMonth-1);
//endTime.set(Calendar.YEAR, newYear);
//setto la weekview
WeekViewEvent event = new WeekViewEvent(1, getEventTitle(startTime), startTime, endTime);
event.setColor(colore_serv);
events.add(event);
}
cur.close();
db.close();
return events;
}