この Android 開発者ページのコードを使用して、ボタンが押されたときにタイム ピッカーを作成しました。しかし、私はそれを正しく見ていません。使用率が高いため 2.3 をサポートしたいので、アプリのターゲットを API 18 に設定しています。最小値は 10 です。最低限必要な SDK は問題に影響を与えていないようです (私は 16 に設定しました):
Android 4.1.2、API 16 を搭載した HTC One S でアプリケーションをデバッグしています。
http://www.b2creativedesigns.com/Tutorials/TimePicker/tutorial_timepicker2.png
この先史時代のタイムピッカーを使用するのはなぜですか?
次のスニペットを使用してダイアログを作成します。FragmentActivity から呼び出します。
DialogFragment newFragment = TimePickerFragment.newInstance(2);
newFragment.show(getSupportFragmentManager(), "endtime");
のコードですTimePickerFragment
。
public static class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
private static int id;
public static TimePickerFragment newInstance(int _id) {
Bundle args = new Bundle();
args.putInt("id", _id);
id = _id;
TimePickerFragment f = new TimePickerFragment();
f.setArguments(args);
return f;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
id = getArguments().getInt("id");
int hour = start / 60; // start is a global variable, no problems in these
int minute = start % 60;
if(id == 2) {
hour = end / 60;
minute = end % 60;
}
return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity()));
}
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
System.out.println(hourOfDay + ":" + minute);
setTime(id, hourOfDay, minute);
}
}