1

我创建了一个DatePickerDialog更改按钮的DatePickerDialog的顺序4.0.3

DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), this, year, month, day); 

,并显示在的Android 4.0.3(API 15)设备,它看起来像这样:

enter image description here

正如你看到的上面的“取消”按钮在左侧显示,而““按钮位于右侧。但在Android 2.3.3上,按钮顺序是相反的。

所以,我怎样才能改变按钮的DatePickerDialog为了以示‘设置’的左侧按钮,‘取消’上的Android 4.0.3的右侧按钮设备?

+1

根据Android设计模式,确定/设置按钮应始终位于从ICS应用的右侧角落 –

回答

2

那么,如何更改DatePickerDialog的按钮顺序,以显示Android 4.0.3设备左侧的“设置”按钮和右侧的“取消”按钮?

你不知道。要么让他们独自一人,要么用自己的DatePicker创建自己的对话框,该按钮的按钮顺序不对。

请注意,绝大多数Android应用用户使用的不仅仅是Android应用。他们实际上使用其他应用其他一些应用程序将使用DatePickerDialog,这些对话框将具有按屏幕截图中所示的按钮顺序。对于您的用户来说,坚持设备标准(因此所有的DatePickerDialogs的工作原理都相同)比在某些设备上强制使用错误的按钮顺序更重要。

1

其实你可以和你不需要创建自己的自定义对话框:

... 
datePickerDialog.show(); 

    if (datePickerDialog.getButton(DatePickerDialog.BUTTON_NEGATIVE).getParent() instanceof LinearLayout) 
    { 
     LinearLayout datePickerDialogLayout = ((LinearLayout) datePickerDialog.getButton(DatePickerDialog.BUTTON_NEGATIVE).getParent()); 
     datePickerDialogLayout.removeView(datePickerDialog.getButton(DatePickerDialog.BUTTON_NEGATIVE)); 
     datePickerDialogLayout.addView(datePickerDialog.getButton(DatePickerDialog.BUTTON_NEGATIVE)); 
    } 

所以我们在这里做的是:

1)显示对话框()后,我们删除一个负面的按钮(在你的情况下取消)从它的parrent布局。当它被移除时,“设置”按钮(或对话框中的任何其他按钮)将成为布局中的最后一个元素。

2)再次添加它(否定按钮)。因此,最后添加的视图成为父布局中的最后一个元素,即对话框。