9

在我的应用程序中,我有一个保存在远程数据库中的日期,我希望将日期选择器设置为。我已经研究过并且只找到了通过 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)

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

4

2 回答 2

9

你可以使用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));
}
于 2013-01-05T09:19:09.453 回答
4

使用乔达时间

下面是一个简单的例子,说明我如何从一个对象设置一个DatePicker和,它可以是当前日期或过去或未来的任何日期(在这种情况下,该属性称为):TimePickerDateTimeinspected_at

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

希望有帮助。

J.P

于 2014-01-29T01:31:14.863 回答