2

ソリューションはまだ見つかりませんでした。私はこの課題に数時間を費やしました。「今日」ボタンを押したときの日付を確認するにはどうすればよいですか?

「今日」ボタンを押したときに表示される日付を取得したい。そして、指定された日付の画面表示に情報を追加しようとするプロセスを信じています。

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

2 に答える 2

1
    //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);
            }
        };
于 2012-03-13T03:30:11.377 に答える
1

外側のクラスで定義された変数は、内側のクラス/インライン メソッドから見えるようになるため、次のようにすることができます。

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);
于 2012-03-13T03:10:51.530 に答える