Java 时间选择器对话框始终为AM/PM

Java 时间选择器对话框始终为AM/PM,java,android,timepickerdialog,Java,Android,Timepickerdialog,我在我的应用程序中创建了两个timepickerdialog, 但我希望我的一个计时器对话框只能显示“AM”, 另一个总是可以显示“PM”, 我该怎么办 这是我的计时器 虽然我不会按照我将要描述的那样做,因为这不是一个好方法,但我认为没有比这更好的方法了,至少给出一种方法,这可以通过迭代TimePicker下的视图并将它们的ResourceNames与android:id/am\u标签和android:id/pm\u标签进行比较来实现 编写了一个方法,将时间选择器设置为AM或PM,如果AM为tr

我在我的应用程序中创建了两个timepickerdialog, 但我希望我的一个计时器对话框只能显示“AM”, 另一个总是可以显示“PM”, 我该怎么办

这是我的计时器


虽然我不会按照我将要描述的那样做,因为这不是一个好方法,但我认为没有比这更好的方法了,至少给出一种方法,这可以通过迭代
TimePicker
下的视图并将它们的
ResourceName
s与
android:id/am\u标签
android:id/pm\u标签
进行比较来实现

编写了一个方法,将
时间选择器设置为AM或PM,如果
AM
true
,则设置为AM,否则设置为PM

private void setMidday(View v, boolean am) {
    if (!(v instanceof ViewGroup)) {
        System.out.println(v.getResources().getResourceName(v.getId())); //You can check the resourcenames by this one
        if (am == true) { //disable PM set to AM
            if (v.getResources().getResourceName(v.getId()).equals("android:id/pm_label")) {
                v.setVisibility(View.GONE);
            }
            if (v.getResources().getResourceName(v.getId()).equals("android:id/am_label")) {
                v.performClick();
                v.setClickable(false);
            }
        }
        else { //disable AM set to PM
            if (v.getResources().getResourceName(v.getId()).equals("android:id/pm_label")) {
                v.performClick();
                v.setClickable(false);
            }
            if (v.getResources().getResourceName(v.getId()).equals("android:id/am_label")) {
                v.setVisibility(View.GONE);
            }
        }
        return;
    }
    ViewGroup viewGroup = (ViewGroup) v;
    for (int i = 0; i < viewGroup.getChildCount(); i++) {
        View child = viewGroup.getChildAt(i);
        setMidday(child, am);
    }
}
将时间选择器设置为PM

将时间选择器设置为AM

View firstChild = timePicker.getChildAt(0);
setMidday(firstChild, true); //set it to AM and disable PM
//or
setMidday(firstChild, false); //set it to PM and disable AM