如何在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);
            }
        };