我创建了一个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设备上右侧的按钮?
所以,我怎样才能改变按钮的DatePickerDialog的顺序,以显示‘设置’的左侧按钮,‘取消’的Android 4.0.3设备上右侧的按钮?
你不知道。 要么你让他们独立,或者你用你自己创建自己的对话框DatePicker
已经在错误的顺序按一下按钮。
请记住,Android应用的大多数用户使用的不仅仅是你的Android应用更多。 他们实际使用其他应用程序。 其中一些其他应用程序将使用DatePickerDialog
,这些对话将有按钮顺序显示在你的屏幕截图。 这是你的用户更重要的是你要坚持到设备标准(所以他们的DatePickerDialogs
的工作方式相同),比它是可以强制某些设备上错了按钮顺序。
其实你可以和你不需要创建自己的自定义对话框:
...
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)再次添加(负号按钮)。 所以,最后添加的角度的父布局的最后一个元素,即对话。