如何获得保存在日期选取器查看日期在android系统? [英] How to get saved date in date picker view in android?

查看:193
本文介绍了如何获得保存在日期选取器查看日期在android系统?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个任务管理应用程序,我需要设置一个到期日期将要创建的各项任务。我能够保存选定的日期在数据库中,但是当我更新它,我面对的问题。我试图让在日期选择器视图,即使用光标保存在数据库中同一日期。
任何人可以帮助我吗?谢谢

我的code:

 如果(tasksID大于0){
            DB =新TodoTask_Database(getApplicationContext());
            光标C = db.getTaskDetails(tasksID);
            db.close();
            datePicker.init(年,月,日,NULL);
            的dueDate = c.getString(0);
        }
        其他{
            datePicker.init(datePicker.getYear(),datePicker.getMonth(),datePicker.getDayOfMonth(),
                    新OnDateChangedListener(){
                公共无效onDateChanged(查看的DatePicker,年整型,
                        INT monthOfYear,诠释请将dayOfMonth){
                    年=年;
                    一个月= monthOfYear + 1;
                    天=请将dayOfMonth;
                的dueDate = +年+ - +月+ - +天;
                }
            });
            }
        okBtn =(按钮)findViewById(R.id.okBtn);
        okBtn.setOnClickListener(本);
        cancelBtn =(按钮)findViewById(R.id.cancelBtn);
        cancelBtn.setOnClickListener(本);
        }
@覆盖
公共无效的onClick(视图v){
    长mTaskID_FromDetails = TaskId_FromDetails;
    长TASK_ID = TASK_ID;
    开关(v.getId()){    案例R.id.okBtn:
        意图passtomain =新意图(getApplicationContext(),Main_Activity.class);
        DB =新TodoTask_Database(getApplicationContext());
        如果(!db.didTaskDetailsExist(TASK_ID)){
            db.addTaskDetails(的dueDate,
                    mTaskID_FromDetails);
        }
        其他{
  //这里面临的问题,如何从数据库和更新的日期选择器同日再次选择后?
            datePicker.init(年,月,日,
                    新OnDateChangedListener(){
                公共无效onDateChanged(查看的DatePicker,年整型,
                        INT monthOfYear,诠释请将dayOfMonth){
                    年=年;
                    一个月= monthOfYear + 1;
                    天=请将dayOfMonth;
                的dueDate = +年+ - +月+ - +天;
                }
            });
            db.updateTaskDetails(TASK_ID,的dueDate);
        }
        startActivity(passtomain);
        db.close();
        打破;


解决方案

 公共无效onDateChanged(查看的DatePicker,年整型,诠释monthOfYear,诠释请将dayOfMonth){
    日历selectedCalendar = Calendar.getInstance();
    selectedCalendar.set(Calendar.YEAR,年);
    selectedCalendar.set(的Calendar.MONTH,monthOfYear);
    selectedCalendar.set(Calendar.DAY_OF_MONTH,请将dayOfMonth);
    //此时selectedCalendar包含您选择的日期
}

I am trying to create a task management app, and I need to set a due date on every task that will be created. I am able to save selected date in database but when I am updating it, I am facing issue. I am trying to get same date in datepicker view, that is saved in database using cursor. can anybody help me out? thanks

my code:

 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;

解决方案

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
}

这篇关于如何获得保存在日期选取器查看日期在android系统?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆