如何在android中获取DatePickerDialog中设置的日期?
解决方案还没有找到,我已经花了几个小时来应对这个挑战。 当你按下“今天”按钮时,我怎样才能知道日期 想要获取按“今天”按钮时显示的日期。 而且,我们相信尝试在指定日期的屏幕显示中添加信息的过程如何在android中获取DatePickerDialog中设置的日期?,android,datepickerdialog,Android,Datepickerdialog,解决方案还没有找到,我已经花了几个小时来应对这个挑战。 当你按下“今天”按钮时,我怎样才能知道日期 想要获取按“今天”按钮时显示的日期。 而且,我们相信尝试在指定日期的屏幕显示中添加信息的过程 DatePickerDialog dpdialog = new DatePickerDialog(me, new OnDateSetListener() { @Override public void onDateSet(DatePicker view, int
DatePickerDialog dpdialog = new DatePickerDialog(me, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int pickyear, int monthOfYear,
int dayOfMonth) {
}
}, year, month-1, day);
// Dialog(Positive Button)
dpdialog.setButton(
DialogInterface.BUTTON_POSITIVE,
"set",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Positive Button
// How to get the date set
String day = dpdialog.getDayOfMonth();
String month = dpdialog.getMonth() + 1;
String year = dpdialog.getYear();
}
}
);
// Dialog (Negative Button)
dpdialog.setButton(
DialogInterface.BUTTON_NEGATIVE,
"cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Negative Button
}
}
);
// Dialog(Neutral Button)
dpdialog.setButton(
DialogInterface.BUTTON_NEUTRAL,
"today",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Neutral Button
}
}
);
dpdialog.show();
外部类中定义的变量将从内部类/内联方法可见,因此您可以这样做:
private String day;
private String month;
private String year;
DatePickerDialog dpdialog = new DatePickerDialog(me, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int pickyear, int monthOfYear, int dayOfMonth) {
// you have the picked year/month/day here.
// For example:
day = String.valueOf(dayOfMonth);
month = String.valueOf(monthOfYear);
year = String.valueOf(pickyear);
}
}, year, month-1, day);
//去宽容
最终静态整数日期对话框ID=1;
编辑文本日期;
字符串日期_selected=“”;
int currentDay、currentYear、currentMonth、,
//一次创建
日历=Calendar.getInstance();
currentDay=calendar.get(calendar.DAY\u/u月);
currentYear=calendar.get(calendar.YEAR);
currentMonth=calendar.get(calendar.MONTH)+1;
dateedt=(EditText)findViewById(R.id.dateedt);
datedt.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
//TODO自动生成的方法存根
showDialog(日期对话框ID);
}
});
//方法
@凌驾
受保护的对话框onCreateDialog(int id){
//TODO自动生成的方法存根
开关(id)
{
案例日期\u对话框\u ID:
返回新的DatePickerDialog(this,mDateSetListener,currentYear,currentMonth-1,currentDay);
}
返回null;
}
DatePickerDialog.OnDateSetListener mDateSetListener=新OnDateSetListener(){
公共无效onDateSet(日期选择器视图,整数年,整数月,
整数(每月的第几天){
//TODO自动生成的方法存根
if(monthOfYear<10&&!String.valueOf(monthOfYear).contains(“0”))
{
if(dayOfMonth<10&&!String.valueOf(dayOfMonth).contains(“0”))
{
所选日期=“0”+字符串.valueOf(monthOfYear+1)+“-0”+字符串.valueOf(dayOfMonth)+“-”+字符串.valueOf(year);
//selectedDateForDb=String.valueOf(year)+“-”+“0”+String.valueOf(monthOfYear+1)+“-0”+String.valueOf(dayOfMonth);
}
其他的
{
所选日期=“0”+字符串.valueOf(monthOfYear+1)+“-”+字符串.valueOf(dayOfMonth)+“-”+字符串.valueOf(year);
//selectedDateForDb=String.valueOf(year)+“-0”+String.valueOf(monthOfYear+1)+“-”+String.valueOf(dayOfMonth);
}
}
else if(dayOfMonth<10&&!String.valueOf(dayOfMonth).contains(“0”))
{
所选日期=String.valueOf(monthOfYear+1)+“-0”+String.valueOf(dayOfMonth)+“-”+String.valueOf(year);
//selectedDateForDb=String.valueOf(year)+“-”+String.valueOf(monthhofyear+1)+“-0”+String.valueOf(dayOfMonth);
}
其他的
{
所选日期=String.valueOf(monthOfYear+1)+“-”+String.valueOf(dayOfMonth)+“-”+String.valueOf(year);
//selectedDateForDb=String.valueOf(year)+“-”+String.valueOf(monthhofyear+1)+“-”+String.valueOf(dayOfMonth);
}
datedt.setText(所选日期);
}
};
如果您不费心格式化代码,没有人会费心回答您的问题。对不起。我应该有更多的问题和建议。再次写我自己的,我试图提高可读性。谢谢你的回答我想得到一个日期显示时,“设置”按钮按下,但我会。我不知道当按下“set”按钮“onDateSet”时如何调用。我很抱歉问了一些基本的问题。谢谢你的快速回答。我的问题是我错了多少。我想获取您在“对话框”而不是“显示”中查看的日期。你觉得得到这些信息有多困难。
//decleration
final static int DATE_DIALOG_ID=1;
EditText dateedt;
String date_selected="";
int currentDay,currentYear,currentMonth,
//onCreate
Calendar calendar=Calendar.getInstance();
currentDay=calendar.get(calendar.DAY_OF_MONTH);
currentYear=calendar.get(calendar.YEAR);
currentMonth=calendar.get(calendar.MONTH)+1;
dateedt=(EditText)findViewById(R.id.dateedt);
dateedt.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(DATE_DIALOG_ID);
}
});
//methods
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
switch(id)
{
case DATE_DIALOG_ID:
return new DatePickerDialog( this,mDateSetListener,currentYear,currentMonth-1,currentDay);
}
return null;
}
DatePickerDialog.OnDateSetListener mDateSetListener=new OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
if(monthOfYear < 10 && !String.valueOf(monthOfYear).contains("0"))
{
if(dayOfMonth < 10 && !String.valueOf(dayOfMonth).contains("0"))
{
date_selected = "0"+String.valueOf(monthOfYear+1)+" -0"+String.valueOf(dayOfMonth)+" -"+String.valueOf(year);
//selectedDateForDb = String.valueOf(year)+"-"+"0"+String.valueOf(monthOfYear+1)+"-0"+String.valueOf(dayOfMonth);
}
else
{
date_selected = "0"+String.valueOf(monthOfYear+1)+" -"+String.valueOf(dayOfMonth)+" -"+String.valueOf(year);
//selectedDateForDb = String.valueOf(year)+"-0"+String.valueOf(monthOfYear+1)+"-"+String.valueOf(dayOfMonth);
}
}
else if(dayOfMonth < 10 && !String.valueOf(dayOfMonth).contains("0"))
{
date_selected = String.valueOf(monthOfYear+1)+" -0"+String.valueOf(dayOfMonth)+" -"+String.valueOf(year);
//selectedDateForDb = String.valueOf(year)+"-"+String.valueOf(monthOfYear+1)+"-0"+String.valueOf(dayOfMonth);
}
else
{
date_selected = String.valueOf(monthOfYear+1)+" -"+String.valueOf(dayOfMonth)+" -"+String.valueOf(year);
//selectedDateForDb = String.valueOf(year)+"-"+String.valueOf(monthOfYear+1)+"-"+String.valueOf(dayOfMonth);
}
dateedt.setText(date_selected);
}
};