我创建了DatePickerDialog
:
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), this, year, month, day);
并在 Android 4.0.3(API 15)设备上显示它,它看起来像这样:
如上所示,“取消”按钮显示在左侧,而“设置”按钮位于右侧。但是在Android 2.3.3上,按钮顺序是另一种方式。
那么,如何更改按钮的DatePickerDialog
顺序,以便在左侧显示“设置”按钮,并“取消 “ Android 4.0.3 设备右侧的按钮?
答案 0 :(得分:2)
那么,如何更改按钮的DatePickerDialog顺序,以便在左侧显示“设置”按钮,在Android 4.0.3设备上显示右侧的“取消”按钮?
你没有。您可以将它们单独留下,也可以使用自己的DatePicker
创建自己的对话框,其中的按钮顺序错误。
请注意,大多数Android应用用户使用的不只是Android应用。他们实际上使用其他应用。其他一些应用程序将使用DatePickerDialog
,这些对话框将按照屏幕截图所示的按钮顺序。对于您来说,遵守设备标准(因此所有DatePickerDialogs
的工作方式相同)比在某些设备上强制执行错误的按钮顺序更为重要。
答案 1 :(得分:1)
实际上,您可以并且不需要创建自己的自定义对话框:
...
datePickerDialog.show();
Button negativeButton = datePickerDialog.getButton(DatePickerDialog.BUTTON_NEGATIVE);
ViewParent buttonParent = negativeButton.getParent();
if (buttonParent instanceof LinearLayout)
{
LinearLayout datePickerDialogLayout = ((LinearLayout) buttonParent);
datePickerDialogLayout.removeView(negativeButton);
datePickerDialogLayout.addView(negativeButton);
}
所以我们在这里做的是:
1)在显示对话框(!)后,我们从其parrent布局中删除了一个否定按钮('取消'在您的情况下)。删除后,设置'按钮(或对话框中的任何其他按钮)成为布局中的最后一个元素。
2)再次添加(否定按钮)。因此,最后添加的视图成为父布局中的最后一个元素,即对话框。