私はこのリンクを使用しています Android TimePickerDialog set max time 。
私はAndroidが初めてです。このコードの助けを借りて、私は過去の時間を選択することはできませんが、未来の時間を選択することはできません。タイムピッカーダイアログモードで12を選択すると、前日ではなく翌日に合わせて自動的にamに変更されます。
このコードを試してください:
TimePickerFragment timePickerFragment = new TimePickerFragment();
timePickerFragment.setOnTimeSetListener(new OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Calendar datetime = Calendar.getInstance();
Calendar c = Calendar.getInstance();
datetime.set(Calendar.HOUR_OF_DAY, hourOfDay);
datetime.set(Calendar.MINUTE, minute);
if (datetime.getTimeInMillis() >= c.getTimeInMillis()) {
//it's after current
int hour = hourOfDay % 12;
btnPickStartTime.setText(String.format("%02d:%02d %s", hour == 0 ? 12 : hour,
minute, hourOfDay < 12 ? "am" : "pm"));
} else {
//it's before current'
Toast.makeText(getApplicationContext(), "Invalid Time", Toast.LENGTH_LONG).show();
}
}
});
timePickerFragment.show(getSupportFragmentManager(), "TIME");
timepicker
ダイアログが表示され、ユーザーが現在時刻より前の時刻を選択すると、無効な時刻が表示されます。
[〜#〜]編集[〜#〜]インポートする必要があります:
import Android.app.TimePickerDialog;
import Android.app.Fragment;
import Android.app.DialogFragment;
import Java.util.Calendar;
import Android.widget.TimePicker;
これが良いです 例
最善の解決策は、 this マテリアルデザインライブラリを使用して、時刻または日付を選択し、最小値を設定することです。
TimePickerDialog tpd = TimePickerDialog.newInstance(
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second) {
//put some interesting code
}
},
now.get(Calendar.HOUR_OF_DAY),
now.get(Calendar.MINUTE),
true
);
tpd.setMinTime(10, 0, 0); // MIN: hours, minute, secconds
tpd.show(getFragmentManager(), "TimePickerDialog");
Material DateTime Pickerライブラリをプロジェクトに追加する最も簡単な方法は、build.gradleへの依存関係として追加することです。
dependencies {
compile 'com.wdullaer:materialdatetimepicker:3.0.0'
}
これがお役に立てば幸いです。