【问题标题】:Initialize date in android datepicker to a specific date, that is not the current date.将 android datepicker 中的日期初始化为特定日期,而不是当前日期。
【发布时间】:2012-06-14 07:16:58
【问题描述】:

在我的应用程序中,我有一个保存在远程数据库中的日期,我希望将日期选择器设置为该日期。我已经研究过并且只找到了通过 Calender java util 设置日期选择器今天日期的示例。示例:

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

如何使用日历显示数据库中的日期而不是今天的日期?你有什么建议或例子可以参考吗?

更新: 在尝试使用日历后,我尝试使用

     // 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);

生成无法将 int 转换为 void 的错误。

如何使用日历将其设置为特定日期?根据谷歌的开发者网站,我应该能够做到这一点。 http://developer.android.com/reference/java/util/Calendar.html

示例:

set(Calendar.MONTH, Calendar.SEPTEMBER)

我希望将日期作为默认值显示在服务器的日期选择器中。

【问题讨论】:

标签: android date calendar initialization android-datepicker


【解决方案1】:

你可以使用 updateDate(year, month, day_of_month); 日期选择器返回日、月和年的整数值。所以参数必须是整数值。日期选择器中月份 jan 的整数值为 0。

我需要将从数据库中提取的日期放入日期选择器。我编写了以下代码,它可以工作。

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));
}

【讨论】:

    【解决方案2】:

    使用JodaTime

    这是一个简单示例,说明我如何从 DateTime 对象设置 DatePickerTimePicker,这可能是当前日期或过去或未来的任何日期(本例中的属性称为 @987654325 @):

    DatePicker dp = (DatePicker) findViewById(R.id.inspected_at_date);
    TimePicker tp = (TimePicker) findViewById(R.id.inspected_at_time);
    
    DateTime inspected_at = DateTime.now().minusYears(1); // Typically pulled from DB.
    
    int year    = inspected_at.getYear() ;
    int month   = inspected_at.getMonthOfYear() - 1;      // Need to subtract 1 here.
    int day     = inspected_at.getDayOfMonth();  
    int hour    = inspected_at.getHourOfDay();
    int minutes = inspected_at.getMinuteOfHour();
    
    dp.updateDate(year, month, day);
    tp.setCurrentHour(hour);
    tp.setCurrentMinute(minutes);
    

    希望对您有所帮助。

    日本

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-18
      • 2014-04-25
      • 2021-06-15
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多