Initialize date in android datepicker to a specific date, that is not the current date.

Leoa picture Leoa · Jun 14, 2012 · Viewed 29.8k times · Source

In my app I have a date saved in a remote database that I want the date picker to be set to. I've researched and only found examples of setting the datepicker today's date via Calender java util. Example:

final Calendar c = Calendar.getInstance();
        year = c.get(Calendar.YEAR);
        month = c.get(Calendar.MONTH);
        day = c.get(Calendar.DAY_OF_MONTH);

How can I use the Calendar to display my date from the database and not today's date? Do you have any suggestions or examples I can follow?

Update: After experimenting with Calendar I tried to use

     // set Date
            String eventYear =date.substring(0,4);
            String eventDay =date.substring(5,7);
            String eventMonth =date.substring(8,10);
        //convert string to int for because calendar only takes int: set(int,int)
        int month = Integer.parseInt(eventMonth);
  final Calendar c = Calendar.getInstance();
     mMonth=c.get(c.set(Calendar.MONTH, Calendar.month));
// or   mMonth=c.get(Calendar.MONTH, Calendar.month);

Generates error that says cannot convert int to void.

How can I use Calendar to set it to a specific date? According to google's developers site I should be able to do this. http://developer.android.com/reference/java/util/Calendar.html

example:

set(Calendar.MONTH, Calendar.SEPTEMBER)

I'd like the date to be display in the datepicker from the server as a default value.

Answer

SABYASACHI picture SABYASACHI · Jan 5, 2013

U can use the updateDate(year, month, day_of_month); date picker returns integer values of day, month and year. so the parameters must be integer values. and the integer value for the month jan in the date picker is 0.

i needed to put the date extracted from a database into a datepicker. I wrote the following code and it works.

DatePicker DOB;
SQLiteDatabase db;

DOB=(DatePicker)findViewById(R.id.datePicker1);

db = openOrCreateDatabase("BdaySMS", SQLiteDatabase.CREATE_IF_NECESSARY, null);
Cursor cur = db.rawQuery("select * from BdaySMS where ph='"+pn+"';", null);//pn is the phone no.

if(cur.moveToFirst())
{
    name.setText(cur.getString(0));
    phone.setText(cur.getString(1));
    DOB.updateDate(Integer.parseInt(cur.getString(4)),Integer.parseInt(cur.getString(3)),Integer.parseInt(cur.getString(2)));
    message.setText(cur.getString(5));
}