2

日時の制約を守ろうとしています。ユーザーが現在の日付よりも前の日付を設定しようとすると、アラートが表示され、同じことが時間とともに行われるようになります。私は日付と時刻のピッカーを使用しonDateSetListeneronTimeSetListenerいます。

DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            dateTime.set(Calendar.YEAR, year);
            dateTime.set(Calendar.MONTH, monthOfYear);
            dateTime.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            update_date_display();



            // ---for setting notification----

            day = dayOfMonth;
            month = monthOfYear;
            AddEditTask.year = year;

            c.set(year, month, day);
        }
    };

    protected void update_date_display() {

        et_task_date.setText(formatDate.format(dateTime.getTime()));
    }

    TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

            dateTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
            dateTime.set(Calendar.MINUTE, minute);
            update_time_display();

            // ---for setting notification---

            hour = hourOfDay;
            AddEditTask.minute = minute;

            c.set(Calendar.HOUR_OF_DAY, hourOfDay);
            c.set(Calendar.MINUTE, minute);
            c.set(Calendar.SECOND, 0);
        }
    };

    private void update_time_display() {

        et_task_time.setText(formatTime.format(dateTime.getTime()));
    }

私が望むものを達成するために、それらのリスナー内に何を書くべきか教えてください。前もって感謝します...!!!

4

3 に答える 3

8

この方法で新しい Date オブジェクトを作成します。

Date now = new Date(System.currentTimeMillis());

そして使うint result = now.compareTo(theOtherDate);

結果は、現在の Date が theOtherDate Date より小さい場合は int < 0、等しい場合は 0、この Date が大きい場合は int > 0 になります。

于 2013-06-16T10:06:44.970 に答える
1

コードは、日付ピッカーからユーザー日付を取得し、Java 日付形式に変換して日付形式変数に日付を格納します。次に、現在のシステム日付を取得し、日付を別の日付形式変数に格納します。ここで、2 つの日付を取得しました。簡単に比較できます。

DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
    @Override
   public void onDateSet(DatePicker view, int myear, int monthOfYear,int dayOfMonth) {
// get the user picked date from date picker 
        year=myear;         
        month=monthOfYear+1;
        day=dayOfMonth; 
// then convert all values to a single string
        SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
        String sday = (""+day);
        String smonth=("-"+month);
        String syear=("-"+year);
        String y=(""+sday+smonth+syear);
//convert the string date to a java date             
                    try 
        {
            Date pickerdate = formatter.parse(y);

        } catch (ParseException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
//printing the system current date and picker date
       Date systemdate = new Date(System.currentTimeMillis());
       System.out.println("current "+systemdate);

       System.out.println("format"+pickerdate);

//now u got the two date in date type to compare it easily put ur if and else condition

                   if(your comparedate condition)
                    {
                         do what U want to do
                    }
                   else
                    {

                    }
         }
};
于 2014-02-21T14:37:32.877 に答える