我已经使用了 this Android developers page 上的代码按下按钮时创建时间选择器。但是,我没有找到正确的外观。我将我的应用程序定位为 API 18,最小值为 10,因为我想支持 2.3,因为 high usage 。所需的最低 SDK 似乎对问题没有影响(我将其设置为 16):
我正在使用 Android 4.1.2、API 16 的 HTC One S 上调试应用程序。我得到了这种时间选择器,但我希望它看起来很现代,就像前面链接的 Android 开发人员页面中一样。
http://www.b2creativedesigns.com/Tutorials/TimePicker/tutorial_timepicker2.png
为什么它使用这个看起来史前的时间选择器?
我使用以下代码 fragment 创建对话框。我从 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);
}
}
最佳答案
使用ContextThemeWrapper
为 Dialog
显式提供基于 Holo 的主题,例如
return new TimePickerDialog(
new ContextThemeWrapper(getActivity(), R.style.YourAppStyleInheritingFromHolo),
this, hour, minute, DateFormat.is24HourFormat(getActivity()));
关于java - Android 时间选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19591809/