web-dev-qa-db-ja.com

androidで日付ピッカーと時間ピッカーに時刻と日付を設定する

アプリケーションで日付ピッカーと時間ピッカーを使用しています。ページがロードされる日時を設定したい。これは可能ですか?どうして?

44
andro-girl

私は次のように私の同様の問題を解決しました

Calendar cal = Calendar.getInstance();

int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int min = cal.get(Calendar.MINUTE);

datePicker.updateDate(year, month, day);

timePicker.setCurrentHour(hour);
timePicker.setCurrentMinute(min);
117
0x5f3759df

JodaTime を使用する

JodaTime は、Javaで日付と時刻を処理するための非常に人気のある便利なライブラリです。あなたがそれを使用していない場合、私はそれを見てみることを強くお勧めします。

以下は、DatePickerおよびTimePickerDateTimeオブジェクトから設定する方法の簡単な例です。これは、現在の日付または過去または未来の任意の日付(この場合の属性はinspected_at)と呼ばれます:

DatePicker datePicker = (DatePicker) findViewById(R.id.inspected_at_date);
TimePicker timePicker = (TimePicker) findViewById(R.id.inspected_at_time);

DateTime inspected_at = DateTime.now()                // Typically pulled from DB.

int year    = inspected_at.getYear() ;
int month   = inspected_at.getMonthOfYear() - 1;      // Need to subtract 1 here.
int day     = inspected_at.getDayOfMonth();  
int hour    = inspected_at.getHourOfDay();
int minutes = inspected_at.getMinuteOfHour();

datePicker.updateDate(year, month, day);              // Set date.

timePicker.setCurrentHour(hour);                      // Set time.
timePicker.setCurrentMinute(minutes);

お役に立てば幸いです。

JP

14
Joshua Pinter

DatePickerにはupdateDateメソッドがあります。

以下は、ダイアログを使用せずに、アプリの1つで使用するものです。

//set datePicker to position
String date_saved = project_row.getString(
    project_row.getColumnIndex("project_startdate"));

int day  = Integer.parseInt(date_saved.substring(0,2));
int year = Integer.parseInt(date_saved.substring(5,9));
String month = date_saved.substring(2,5);
int month_code = getMonthInt(month);

project_startdate_data = (DatePicker) findViewById(R.id.project_startdate_data);
project_startdate_data.updateDate(year, month_code, day);

ここで、project_rowは私のカーソルであり、project_startdateのような22MAY2012列に日付が保存されます

これが必要です:

private int getMonthInt(String month) {
    if (month.equalsIgnoreCase("JAN")) return 0;
    if (month.equalsIgnoreCase("FEB")) return 1;
    if (month.equalsIgnoreCase("MAR")) return 2;
    if (month.equalsIgnoreCase("APR")) return 3;
    if (month.equalsIgnoreCase("MAY")) return 4;
    if (month.equalsIgnoreCase("JUN")) return 5;
    if (month.equalsIgnoreCase("JUL")) return 6;
    if (month.equalsIgnoreCase("AUG")) return 7;
    if (month.equalsIgnoreCase("SEP")) return 8;
    if (month.equalsIgnoreCase("OCT")) return 9;
    if (month.equalsIgnoreCase("NOV")) return 10;
    if (month.equalsIgnoreCase("DEC")) return 11;

    //return -1 if month code not found
    return -1;
}
7
Mirko

これを確認してください 日付選択ダイアログの使用方法 。 onCreate()で更新関数を使用します。ページが読み込まれると、アクティビティが開始されることを意味します。

2
Farhan

this を確認してください。

showDialog(TIME_DIALOG_ID);onCreate();関数を使用します

1
Jaydeep Khamar