Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 有没有一种方法可以在TimePickerDialog中以编程方式将am更改为pm?_Android_Datetimepicker_Timepicker - Fatal编程技术网

Android 有没有一种方法可以在TimePickerDialog中以编程方式将am更改为pm?

Android 有没有一种方法可以在TimePickerDialog中以编程方式将am更改为pm?,android,datetimepicker,timepicker,Android,Datetimepicker,Timepicker,我正在寻找一种方法,在使用12小时格式的同时,在我的Android应用程序的TimePickerDialog中动态更改AM/PM。我希望在对话框中的时间从11点变为12点时,在用户单击设置按钮之前,将AM切换为PM,反之亦然。这是可能的,还是我需要考虑创建一个自定义TimePickerDialog控件?我现在的代码如下。谢谢你的帮助 // Start Time starttime = (Button)findViewById(R.id.starttime); star

我正在寻找一种方法,在使用12小时格式的同时,在我的Android应用程序的TimePickerDialog中动态更改AM/PM。我希望在对话框中的时间从11点变为12点时,在用户单击设置按钮之前,将AM切换为PM,反之亦然。这是可能的,还是我需要考虑创建一个自定义TimePickerDialog控件?我现在的代码如下。谢谢你的帮助

    // Start Time
    starttime = (Button)findViewById(R.id.starttime); 

    starttime.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View v) { 
            boolean is24HourFormat = use24HourFormat();
            new TimePickerDialog(DutyHoursForm.this, 
                    startTimeListener, 
                    startDateAndTime.get(Calendar.HOUR_OF_DAY), 
                    startDateAndTime.get(Calendar.MINUTE), 
                    is24HourFormat).show(); 
            } 
    }); 

TimePickerDialog.OnTimeSetListener startTimeListener = new TimePickerDialog.OnTimeSetListener() { 
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
        startDateAndTime.set(Calendar.HOUR_OF_DAY, hourOfDay); 
        startDateAndTime.set(Calendar.MINUTE, minute); 
        updateStartTime(); 
    } 
};

初始化变量以跟踪更改前的小时,如lastCurrentHour 然后您可以在onTimeChanged中执行此操作:

public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
    if(DateFormat.is24HourFormat(this)) return;

    if(lastCurrentHour == 0 && view.getCurrentHour()==11 ){
        view.setCurrentHour(23);
    }else

    if(lastCurrentHour == 11 && view.getCurrentHour()==0 ){
        view.setCurrentHour(12);
    }else

    if(lastCurrentHour == 12 && view.getCurrentHour()==23 ){
        view.setCurrentHour(11);
    }else

    if(lastCurrentHour == 23 && view.getCurrentHour()==12 ){
        view.setCurrentHour(0);
    }
    lastCurrentHour = view.getCurrentHour();
}
找到一个有效的例子