2012-04-30 10 views
0

現在、私の問題は、DatePickerDialogから取得した値が、Dateコンストラクタに送信するときに正しく解析されないということです。日付が設定されているとAndroid DatePickerDialogが不正確な値を返す

04-30 21:34:10.548: I/TodosActivity(29510): listener => mYear=2012; mMonth=5; mDayOfMonth=2; 

....

private DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, 
      int dayOfMonth) { 
     mYear = year; 
     mMonth = monthOfYear + 1; 
     mDayOfMonth = dayOfMonth; 
     String t = "listener => mYear=" + mYear + "; mMonth=" + mMonth + 
       "; mDayOfMonth=" + mDayOfMonth + ";"; 
     Log.i(TAG, t); 
    } 
}; 

上記loggingステートメント利回り....(another postからの提案どおりに)日付値を取得します

todo.setDueDate(new Date(mYear, mMonth, mDayOfMonth)); 

納期を確認しました....

で結果
String t = "setNewDueDate(Todo) => #" + todo.getId() + ": " + todo.getTitle() + " (" + 
      todo.getText() + "). Created on " + format.format(todo.getCreatedDate()) + 
      ". Last modified on " + format.format(todo.getModifiedDate()) + 
      ". Due on " + format.format(todo.getDueDate()) + "."; 
Log.i(TAG, t); 

....

04-30 21:34:05.703: I/TodosActivity(29510): setNewDueDate(Todo) => #1: Test (Test). Created on 30 Apr 2012 20:07:51. Last modified on 30 Apr 2012 20:55:27. Due on 31 Dec 1899 00:00:00. 

EDIT:

初期DatePickerDialog値を設定し...

 return new DatePickerDialog(this, listener, cal.get(Calendar.YEAR), 
       cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)); 

は何があることを私がすべき/やってはいけないのですか?

答えて

4

Calendarとそれにさまざまなset()のメソッドを使用して日付を更新します。例えば

this sample projectは、このようなコードを有している:dateAndTimeCalendarある

DatePickerDialog.OnDateSetListener d=new DatePickerDialog.OnDateSetListener() { 
    public void onDateSet(DatePicker view, int year, int monthOfYear, 
          int dayOfMonth) { 
     dateAndTime.set(Calendar.YEAR, year); 
     dateAndTime.set(Calendar.MONTH, monthOfYear); 
     dateAndTime.set(Calendar.DAY_OF_MONTH, dayOfMonth); 
     updateLabel(); 
    } 
    }; 

関連する問題