3

アプリケーションで問題が発生しています。ユーザーが過去の日付と時刻を選択できないようにするために何かをしようとしています。ユーザーが過去の日付と時刻を選択すると、エラー メッセージが表示されます。ユーザーは、datePicker と timePicker から日付と時刻を選択します。誰でもそれを行う考えがありますか? どんな助けでも大歓迎です。どうもありがとう!

4

3 に答える 3

2

ブロードキャスト レシーバー ACTION_TIME_CHANGED を使用して、ユーザーが日時を変更できないようにすることができます。ユーザーが日時を変更すると、ブロードキャスト レシーバーが呼び出されます。ブロードキャスト レシーバーの onRecieve メソッドをオーバーライドします。マニフェスト ファイルでブロードキャスト レシーバーを定義してください。

  @Override
  public void onReceive(Context context, Intent intent) {

    // You can put conditions the changed date time is not past from the current time and show toast message.

  }
于 2012-09-12T06:59:43.077 に答える
1

edittext でピッカー値を設定している場合は、次のようにすることができます。

Calendar cal = Calendar.getInstance();
                                cal.set(cal.get(Calendar.YEAR),
                                        cal.get(Calendar.MONTH),
                                        cal.get(Calendar.DAY_OF_MONTH));
                                DateFormat df = new SimpleDateFormat(
                                        "dd/MM/yyyy");
                                Date day_entered, day_valid;

                                day_entered = df.parse(your_date_edittext.getText()
                                        .toString());
                                day_valid = df.parse(df.format(cal.getTime()));
                                if (day_entered.after(day_valid)) {
                                    Toast msg = Toast
                                            .makeText(
                                                    Profile.this,
                                                    "Please Enter a valid date",
                                                    Toast.LENGTH_LONG);
                                    msg.show();
                                    }
于 2012-09-12T06:56:26.863 に答える
0
if(fromdate!=null && fromdate.length()>0 && todate!=null && todate.length()>0)
   {
    try
       {
      sdf = new SimpleDateFormat("yyyy-mm-dd");
               date1 = sdf.parse(fromdate);
               date2 = sdf.parse(todate);

           Calendar cal = Calendar.getInstance();
           Calendar cal2 = Calendar.getInstance();


           cal.setTime(date1);
                 cal2.setTime(date2);


                  if(cal.after(cal2)){
                System.out.println("Date1 is after Date2");
              //  Toast.makeText(getApplicationContext(), "from Date1 is after Date2", Toast.LENGTH_SHORT).show();
               // clear the dates here........
                  }


       }
      catch(Exception e)
      {
       Log.d("pavan","in exception block ");
      }

}

于 2012-09-12T07:30:29.127 に答える