Ok, ho capito la problematica, ma quel che mi perplime è il perchè possa succedere una cosa del genere.
Che venga eliminato un record ci può stare... ma se poi lo devo re-inserire lo re-inserirò con il valore che voglio io.
Se è stato usato un campo auto-increment per quel valore... allora significa che si è sbagliato: quello è il tipico caso in cui l'auto-increment non ha nessun senso di esistere (e non andrebbe usato).
Ad ogni modo, pur lasciando le cose come stanno, si può ovviare abbastanza facilmente (a questo punto anche la mia if "di sicurezza" non ha più alcun senso di esistere): basta non tener conto del valore, ma solo della sequenza:
codice:
int numero = 0;
while (cur.moveToNext()) {
id_a = cur.getInt(0); // Questa può anche essere omessa, non serve
giorno_ok= cur.getInt(1);
startTime.set(Calendar.DAY_OF_MONTH, giorno_ok);
startTime.add(Calendar.DATE, numero); // Non mi importa più di quale sia l'effettivo valore, conta solo la "posizione"
numero++;
}
Rimane il problema che ad ogni ciclo (quindi per ogni record) usi sempre lo stesso oggetto "startTime"...
Ciao.