lundi 4 mai 2015

Android: Comparing current date and time with the date and time in a database

I am currently trying to create an alarm app within android as part of my coursework. Currently everything is working apart from the part which does a date and time check with what's in the database.

Within my "AlarmCheckDateAndTime, I need help with

  • Comparing the current date with all dates in into a database

  • Comparing the current time with time in the same record as the date

The way I was thinking to do this would be to have two "if" statements within that class file. One which will do the date checking, and within that, the one which time checks. Would there be any chance someone could provide me with some help?

My AlarmCheckDateAndTime class file

public class AlarmCheckDateAndTime{
    DatabaseHandler dbHandler;



public static void main (String[] args){
    Date ThisDate = Calendar.getInstance().getTime();

    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");

    String DateChecker = formatter.format(ThisDate);

    Date ThisTime = Calendar.getInstance().getTime();
    SimpleDateFormat timeformatter = new SimpleDateFormat("hh:mm");
    String TimeChecker = formatter.format(ThisTime);

  }
}

My UserInputAlarmData class file

    public class UserInputAlarmData {
        private int _id;
        private String _title, _date, _time, _song;


        public UserInputAlarmData (int id, String title, String date, String time, String song){
            _id = id;
            _title = title;
            _date = date;
            _time = time;
            _song = song;

        }

        public String get_title() {
            return _title;
        }

        public String get_date() {
            return _date;
        }

        public String get_time() {
            return _time;
        }

        public String get_song() {
            return _song;
        }

        public int getId() {return  _id;}
        public String getTitle() {return _title;}
        public String getDate() {return _date;}
        public String getTime() {return _time;}
        public String getSong() {return  _song;}
    }

My DatabaseHandler class

public class DatabaseHandler extends SQLiteOpenHelper{

    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_NAME = "FoodTekTrakr",
            DATABASE_TABLE = "AlarmManager",
            KEY_ID = "id",
            KEY_TITLE = "title",
            KEY_DATE = "date",
            KEY_TIME = "time",
            KEY_SONG = "song";


    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db){
        db.execSQL("CREATE TABLE " + DATABASE_TABLE + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_TITLE + " TEXT," + KEY_DATE + " TEXT," + KEY_TIME + " TEXT," + KEY_SONG + " TEXT)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db,int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
        onCreate(db);
    }

    public void createAlarm(UserInputAlarmData AlarmData){
        SQLiteDatabase db = getWritableDatabase();

        ContentValues values = new ContentValues();

        values.put(KEY_TITLE, AlarmData.getTitle());
        values.put(KEY_DATE, AlarmData.getDate());
        values.put(KEY_TIME, AlarmData.getTime());
        values.put(KEY_SONG, AlarmData.getSong());


        db.insert(DATABASE_TABLE, null, values);
        db.close();
    }

    public UserInputAlarmData getAlarmData(int id){
        SQLiteDatabase db = getReadableDatabase();

        Cursor cursor = db.query(DATABASE_TABLE, new String[] {KEY_ID, KEY_TITLE, KEY_DATE, KEY_TIME, KEY_SONG}, KEY_ID
                + "=?", new String[] {String.valueOf(id) }, null, null, null );

        if (cursor != null)
            cursor.moveToFirst();

        UserInputAlarmData AlarmData = new UserInputAlarmData(Integer.parseInt(cursor.getString(0)), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4));
        db.close();
        cursor.close();
        return AlarmData;
    }

    public void deleteAlarm(UserInputAlarmData AlarmData){
        SQLiteDatabase db = getWritableDatabase();
        db.delete(DATABASE_TABLE, KEY_ID + "=?", new String[] { String.valueOf(AlarmData.getId()) });
        db.close();
    }

    public int getAlarmDataCount() {
        SQLiteDatabase db =getReadableDatabase();
        Cursor cursor = db.rawQuery("SELECT * FROM " + DATABASE_TABLE, null);

        int count = cursor.getCount();
        db.close();
        cursor.close();

        return count;
    }

    public int updateAlarmData(UserInputAlarmData AlarmData){
        SQLiteDatabase db = getWritableDatabase();

        ContentValues values = new ContentValues();

        values.put(KEY_TITLE, AlarmData.getTitle());
        values.put(KEY_DATE, AlarmData.getDate());
        values.put(KEY_TIME, AlarmData.getTime());
        values.put(KEY_SONG, AlarmData.getSong());


        return db.update(DATABASE_TABLE, values, KEY_ID + "=?", new String[] { String.valueOf(AlarmData.getId())});
    }

    public List<UserInputAlarmData> getAllAlarmData() {
        List<UserInputAlarmData> AlarmDatas = new ArrayList<UserInputAlarmData>();
        SQLiteDatabase db = getWritableDatabase();
        Cursor cursor = db.rawQuery("SELECT * FROM " + DATABASE_TABLE, null);

        if (cursor.moveToFirst()) {
            do {
                UserInputAlarmData AlarmData = new UserInputAlarmData(Integer.parseInt(cursor.getString(0)), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4));
                AlarmDatas.add(AlarmData);
            }
            while (cursor.moveToNext());
        }
        return  AlarmDatas;
    }

}

If you need to view any other class files, I can provide them.

Thank you very much in advance for the help

Aucun commentaire:

Enregistrer un commentaire