Ví dụ: khi tôi tạo timePicker này (bên dưới) lúc 18:00, timePicker của timeValue sẽ là 06:00. Lúc 19: 44-> 07:44 ... Vì vậy, nó không chuyển sang giờ hiện tại chính xác sau khi chuyển từ AM/PM sang chế độ 24h. Làm thế nào tôi có thể thay đổi điều đó? Mục tiêu của tôi là timePicker hiển thị thời gian hiện tại khi nó được tạo. Giống như nó khi tôi sử dụng nó trong chế độ AM/PM.TimePicker giờ không cập nhật sau khi chuyển sang 24h
TimePicker timePicker = (TimePicker) convertView.findViewById(R.id.time_picker);
timePicker.setIs24HourView(true);
Sry vì công thức xấu, hy vọng bạn có thể hiểu câu hỏi của tôi. Nếu không, chỉ cần hỏi.
UPDATE:
public class ChooseTimeViewDialog extends AlertDialog {
protected Context context;
public ChooseTimeViewDialog(final Context context) {
super(context);
this.context = context;
}
public void onCreate(Bundle savedInstanceState) {
LayoutInflater inflater = this.getLayoutInflater();
View convertView = inflater.inflate(R.layout.dialog_choose_time_view, null);
setContentView(convertView);
setTitle(R.string.title_dialog_choose_time_view);
final TimePicker taskTimePicker = (TimePicker) convertView.findViewById(R.id.dctv_task_time_picker);
taskTimePicker.setIs24HourView(true);
setButton(DialogInterface.BUTTON_POSITIVE, "Choose", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int hour = taskTimePicker.getCurrentHour();
int minute = taskTimePicker.getCurrentMinute();
Calendar cal = new GregorianCalendar();
cal.set(0, 0, 0, hour, minute, 0);
((AddTaskViewActivity) context).setSelectedTime(cal.getTime());
}
});
setButton(DialogInterface.BUTTON_NEUTRAL, "No time", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
((AddTaskViewActivity) context).setSelectedTime(null);
}
});
}
}
XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TimePicker
android:id="@+id/dctv_task_time_picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
Sau khi tôi chuyển initialiation để onCreate và sử dụng setContentView (View), nền của hộp thoại là minh bạch, đó là toàn màn hình và không có nút..why?
Vâng tôi có thể sửa chữa nó, nhưng nó không phải là thực sự là một giải pháp tốt đẹp, tốt hơn? timePicker.setCurrentHour (new Date(). GetHours()); – StupidBird
Khi nào mã này được thực thi? Nhiều tiện ích sẽ không vẽ lại một cách kỳ diệu sau khi chúng được tạo. – rds
Nó được thực thi trong hàm tạo của một AlertDialog tùy chỉnh được gọi là ChooseTimeDialog mà tôi đã tạo. Mỗi khi tôi mở hộp thoại, tôi tạo một đối tượng mới của nó: new ChooseTimeDialog (this) .show(); – StupidBird