在我的应用程序中,我将日期保存在远程数据库中,我希望将日期选择器设置为。我已经研究过,只发现了通过Calender java util设置datepicker今天日期的例子。例如:
final Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
如何使用日历从数据库显示我的日期而不是今天的日期?你有任何我可以遵循的建议或例子吗?
更新: 在尝试使用Calendar之后,我尝试使用
// 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)
我希望将来自服务器的datepicker中显示的日期作为默认值。
答案 0 :(得分:8)
你可以使用 updateDate(年,月,日__月); 日期选择器返回日,月和年的整数值。所以参数必须是整数值。并且日期选择器中月份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));
}
答案 1 :(得分:4)
以下是我如何从DatePicker
对象设置TimePicker
和DateTime
的简单示例,该对象可以是当前日期或过去或将来的任何日期(属性在这种情况称为inspected_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);
希望有所帮助。
JP