- _ID
- Data
- Ora
- Tipo di attività
- (appropriatezza)
Facciamo solo con i primi quattro.
public void save(String attivita){ SQLiteDatabase db=this.getWritableDatabase(); Date date=new Date(); long dateMillis=date.getTime(); ContentValues values=new ContentValues(); values.put("data", dateMillis); values.put("ore", dateMillis); values.put("attivita",attivita); db.insert("TABELLA", null,values); } public Cursor query(int numero){ SQLiteDatabase db=this.getWritableDatabase(); Cursor crs=db.rawQuery("select * from TABELLA where _id="+numero, null); crs.moveToFirst(); return crs; }Fin qui nessun grosso problema...
Il problema sta nel momento in cui io voglia selezionare i records del database in relazione a una certa data, sia essa compresa fra due date o anteriore o posteriore a un'altra data.
Come fare, dal momento che le date sono salvate sotto forma di millisecondi?
Mi si pone la possibilità di salvare le date come stringhe e poter fare il confronto fra date memorizzate in questo formato...
Sfascio tutto...
E riprovo. Come si converte una data in stringa? Presumo con il ToString.
Ecco il codice:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Helper helper=new Helper(this); helper.save("Un tubo"); } class Helper extends SQLiteOpenHelper{ public Helper(Context context) { super(context, "database.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table TABELLA(_id integer primary key,data text ,ora text,attivita text)"); } public void save(String attivita){ SQLiteDatabase db=this.getWritableDatabase(); Date date=new Date(); DateFormat df=new SimpleDateFormat("dd/MM/yyyy"); DateFormat hf=new SimpleDateFormat("hh:mm"); String dateFormat=df.format(date).toString(); String hourFormat =hf.format(date).toString(); ContentValues values=new ContentValues(); values.put("data", dateFormat); values.put("ora", hourFormat); values.put("attivita",attivita); db.insert("TABELLA", null, values); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } } }Ho immesso alcuni records.
Ora voglio discriminarli.
Ecco, ho trovato:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Helper helper=new Helper(this); Log.d("DATA", helper.query().getString(2)); } class Helper extends SQLiteOpenHelper{ public Helper(Context context) { super(context, "database.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table TABELLA(_id integer primary key,data text,ora text,attivita text)"); } public void save(String attivita){ SQLiteDatabase db=this.getWritableDatabase(); Date date=new Date(); DateFormat df=new SimpleDateFormat("dd/MM/yyyy"); DateFormat hf=new SimpleDateFormat("hh:mm"); String dateFormat=df.format(date).toString(); String hourFormat =hf.format(date).toString(); ContentValues values=new ContentValues(); values.put("data", dateFormat); values.put("ora", hourFormat); values.put("attivita",attivita); db.insert("TABELLA", null, values); } public Cursor query(){ SQLiteDatabase db=this.getWritableDatabase(); Cursor crs=db.rawQuery("select * from TABELLA where data = '17/07/2016' ",null); crs.moveToFirst(); return crs; } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } } }Ecco, adesso mi devo esercitare a selezionare per data i records del database. E devo trovare i controlli adeguati.
Nessun commento:
Posta un commento