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)再次添加它(否定按鈕)。因此,最後添加的視圖成爲父佈局中的最後一個元素,即對話框。