2017-10-04 1 views
0

私は、ユーザーが日付を選択する必要がある単純なアクティビティを持っています(日付なし、時間なし)。私は正しい検証をする必要があります。まず、dayOfMonth、monthOfYearとyearを3つの異なるテキストビューに入れ、if elseを使用して(たとえば、< = 0または> = 31 ...のような)条件を記述すると考えました。私が試しコード:AndroidのDatePickerDialog、日付検証

 @Override 
     public void onClick(View v) { 
      final Calendar c = Calendar.getInstance(); 
      int mYear = c.get(Calendar.YEAR); 
      int mMonth = c.get(Calendar.MONTH); 
      int mDay = c.get(Calendar.DAY_OF_MONTH); 

      datePickerDialog = new DatePickerDialog(Date.this, 
        new DatePickerDialog.OnDateSetListener() { 

         @Override 
         public void onDateSet(DatePicker view, int year, 
               int monthOfYear, int dayOfMonth) { 
          tvDay.setText(dayOfMonth); 
          tvMonth.setText(monthOfYear); 
          tvYear.setText(year); 


         } 
        }, mYear, mMonth, mDay); 
      datePickerDialog.show(); 
     } 
    }); 

をしかし、それは動作しませんが、私は1つのテキストビューにDAYOFMONTH、monthOfYear年を置くことができます。このように:

 public void onClick(View v) { 
      final Calendar c = Calendar.getInstance(); 
      int mYear = c.get(Calendar.YEAR); 
      int mMonth = c.get(Calendar.MONTH); 
      int mDay = c.get(Calendar.DAY_OF_MONTH); 

      datePickerDialog = new DatePickerDialog(Date.this, 
        new DatePickerDialog.OnDateSetListener() { 

         @Override 
         public void onDateSet(DatePicker view, int year, 
               int monthOfYear, int dayOfMonth) { 
          tvDate.setText(dayOfMonth + "/" + (monthOfYear + 1) + "/" + year); 
         } 
        }, mYear, mMonth, mDay); 
      datePickerDialog.show(); 
     } 
    }); 
} 

私のケースで正しく検証するにはどうすればよいですか?それはおそらく愚かな質問なので、申し訳ありませんが、私は初心者です。

ありがとうございます。

+0

あなたはここで検証を必要とするなぜあなたはdatepickerdialogを使用している場合?あなたは検証を必要としません –

答えて

2

あなたはSimpleDateFormatを使用することができ、その後calanderObject.getTime()は、ここで私はメソッド内TextViewの参照を渡しているString

の形であなたによくフォーマットされた日付を与えるだろう。しかしそれは重要ではありません。

private void setDate(final TextView tV) { 
    final Calendar cal = Calendar.getInstance(); 

    DatePickerDialog dialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { 
     @Override 
     public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
      SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH); 
      cal.set(year, monthOfYear, dayOfMonth); 
      tV.setText(dateFormat.format(cal.getTime())); 
     } 
    }, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)); 
    dialog.show(); 
} 
0

デニスは{私はちょうどあなたがカレンダーオブジェクトを使用することができます日付の検証のためにそれを追加したい場合は、それはのようにすべてのこのクールな操作は(someDate>今=)

のように今日の日付に対してそれと一致した権利であります ...

うるう年(29/2毎日)の計算が必要な場合は、カレンダーから継承するGregorianCalendarを使用する必要があります。

https://developer.android.com/reference/java/util/GregorianCalendar.html