如何在android中的日期选择器视图中获取保存日期?

时间:2013-08-15 08:54:23

标签: android android-edittext android-sqlite android-datepicker

我正在尝试创建一个任务管理应用程序,我需要为将要创建的每个任务设置截止日期。我可以在数据库中保存选定的日期,但是当我更新它时,我面临着问题。我试图在datepicker视图中获取相同的日期,使用游标保存在数据库中。 任何人都可以帮助我吗?感谢

我的代码:

 if(tasksID>0){
            db = new TodoTask_Database(getApplicationContext());
            Cursor c = db.getTaskDetails(tasksID);
            db.close();
            datePicker.init(Year, month, day, null);
            dueDate = c.getString(0);
        }
        else {
            datePicker.init(datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth(), 
                    new OnDateChangedListener() {
                public void onDateChanged(DatePicker view, int year,
                        int monthOfYear, int dayOfMonth) {
                    Year=year;
                    month= monthOfYear+1;
                    day= dayOfMonth;
                dueDate = +Year+"-"+month+"-"+day;
                }
            });
            }
        okBtn = (Button)findViewById(R.id.okBtn);
        okBtn.setOnClickListener(this);
        cancelBtn = (Button)findViewById(R.id.cancelBtn);
        cancelBtn.setOnClickListener(this);
        }
@Override
public void onClick(View v) {
    long mTaskID_FromDetails = TaskId_FromDetails;
    long task_ID = Task_ID;
    switch(v.getId()){

    case R.id.okBtn:
        Intent passtomain = new Intent(getApplicationContext(), Main_Activity.class);
        db = new TodoTask_Database(getApplicationContext());
        if(!db.didTaskDetailsExist(task_ID)){
            db.addTaskDetails(dueDate,
                    mTaskID_FromDetails);
        }
        else{
  //facing issue here how to get same date in date picker from database and update after selecting it again?
            datePicker.init(Year, month, day,
                    new OnDateChangedListener() {
                public void onDateChanged(DatePicker view, int year,
                        int monthOfYear, int dayOfMonth) {
                    Year=year;
                    month= monthOfYear+1;
                    day= dayOfMonth;
                dueDate = +Year+"-"+month+"-"+day;
                }
            });
            db.updateTaskDetails(task_ID, dueDate);
        }
        startActivity(passtomain);
        db.close();
        break;

2 个答案:

答案 0 :(得分:0)

保存你的Unix时间戳;使用getTimeInMillis()setTimeInMillis()

答案 1 :(得分:0)

public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
    Calendar selectedCalendar = Calendar.getInstance();
    selectedCalendar.set(Calendar.YEAR, year);
    selectedCalendar.set(Calendar.MONTH, monthOfYear);
    selectedCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
    //at this point selectedCalendar contains your selected date
}