- _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