Ti spiego bene cosa devo fare, magari riesci a consigliarmi altre strade..
La View viene popolata tramite una Lista che a sua volta riceve i dati dal db.
Ad ogni colonna della View corrisponde un giorno (la prima colonna OGGI, la seconda DOMANI e così via in base agli operatori presenti nel db.
Quindi l'operatore che ha come id 1, sarà visualizzato nella prima colonna, l'operatore che ha l'id 2 sarà visualizzato nella seconda colonna ecc.....
Attualmente ho inserito un semplice if-else per provare e tutto funziona (VEDI SCREENSHOOT).
Però se vado ad eliminare un operatore e poi ne inserisco un altro, al nuovo vengono assegnati automaticamente gli eventi dell'operatore eliminato e questo non deve accadere.
Spero di essere stato chiaro
La lista:
@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 + "'";
Cursor cur = db.rawQuery(tabella_op, null);
while (cur.moveToNext()) {
Calendar startTime = Calendar.getInstance();
id_operator = cur.getString(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);
if(id_operator.equals("1")){
startTime = Calendar.getInstance();
}else if(id_operator.equals("2")){
startTime.add(Calendar.DATE, 1);
}else if(id_operator.equals("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);
String mese = String.valueOf(newMonth - 1);
Log.d("mese", mese);
//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;
}
Allegati: