我正在做一个Android应用程序,我必须选择一个特定的时间。
这是我到目前为止所做的:
public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
// use the current time as the default values for the picker
Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
// create a new instance of TimePickerDialog and return it
return new TimePickerDialog(getActivity(), this, hour, minute, false
); // DateFormat.is24HourFormat(getActivity())
}
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute)
{
view.setIs24HourView(false);
String time;
if ( minute < 10 ) {
_minute = ":0" + minute;
} else {
_minute = ":" + minute;
}
Log.w("TimePicker", "Time = " + time);
EditText activityButton = (EditText)getActivity().findViewById(R.id.etTime);
activityButton.setText( time );
}
我想要实现的目标是:
6:30 PM
但我得到的只是:
18:30
我希望12 H格式不是24小时。我怎样才能做到这一点?感谢非常感谢帮助。
答案 0 :(得分:1)
尝试更改
int hour = c.get(Calendar.HOUR_OF_DAY);
到
int hour = c.get(Calendar.HOUR);
bcoz我在
上看到了public static final int HOUR_OF_DAY
在API级别1中添加
获取和设置的字段编号,表示当天的小时。 HOUR_OF_DAY用于24小时制。例如,在10:04:15.250 PM,HOUR_OF_DAY是22。
http://developer.android.com/reference/java/util/Calendar.html#HOUR_OF_DAY
答案 1 :(得分:0)
只需使用TimePickerDialog
类即可使用其构造函数实现此目的:
TimePickerDialog (Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)
查看文档here。
根据您的要求,请从此处查看参考资料:
http://www.compiletimeerror.com/2013/07/time-picker-in-android-example.html
答案 2 :(得分:0)
您只需要设置一个条件来确定当天的小时是否大于12,这样您就可以减少12小时并将PM附加到它。条件还应该确定当天的小时是否等于下午12点,所以它只会附加PM而不会减少12小时。
DispatchQueue.global(priority: DispatchQueue.GlobalQueuePriority.default).async {
let url = URL(string: itemImageURL )
let data = try? Data(contentsOf: url!)
if data != nil {
DispatchQueue.main.async{
cell.advImage!.image = UIImage(data: data!)
}
}
}