2013-02-06 169 views
1

當我在Android 3.2及安卓4.0.3運行我的代碼,它顯示了不同的日期pickers..i想日期選取器像1 image..i一個輪車知道2.3.3顯示老採摘。但我不知道爲什麼我在4.0.3中變得越來越老,這是3.2中的新增功能。它同樣也發生在Number Picker上。日期選取器警告對話框

這裏是我的代碼:

private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { 
    public void onDateSet(DatePicker view, int year, int monthOfYear, 
      int dayOfMonth) { 
     mYear = year; 
     mMonth = monthOfYear; 
     mDay = dayOfMonth; 
     if (picker == 1) { 
      final long lDate = mDay; 
      dateStart.set(Calendar.YEAR, mYear); 
      dateStart.set(Calendar.MONTH, mMonth); 
      dateStart.set(Calendar.DATE, mDay); 
      Log.d("startdate", "" + dateStart); 
      if (lDate != -1) { 
       UpdateStartDateTimeView(); 

       return; 
      } 

     } 


     updateDisplay(); 
    } 
}; 

This i got in 3.2 This i got in 4.0.3

回答

1

如果您使用本機選擇器,自動Android將選擇對應於當前版本。您只能通過創建自定義對話框來確保獨立對話框不受Android版本限制。因此,你需要看如果唯一選擇器實在值得設計一個自定義的努力..

+0

我想本土拾取only.i不想定製picker..my問題就是我年紀越來越大,而拾取塔其原生選擇器......看到第一pic..it的是Android 4.0.3..its本地是不同的,但我越來越老選擇器...但在Android它調用正確... – Prasad

0

的DatePickerDialog是具有接受一個主題

DatePickerDialog(Context context, int theme, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth) 

構造只是

更新我們的代碼對於光全息主題

DatePickerDialog datePickerDialog = new DatePickerDialog(this, 
      android.R.style.Theme_Holo_Light_Dialog_NoActionBar, 
new DateListener(v), mTime.year, mTime.month, mTime.monthDay); 

˚F或暗全息主題

DatePickerDialog datePickerDialog = new DatePickerDialog(this, 
      android.R.style.Theme_Holo__Dialog_NoActionBar, 
new DateListener(v), mTime.year, mTime.month, mTime.monthDay); 
0

如果我理解你的權利,你得到上述4在Andoid版本舊的對話風格我有這個問題,當我設置對話框片段STYLE_NO_FRAME。在這種情況下,日期選擇器總是有舊的設計,我不知道它爲什麼如此。如果你想獲得總現代UI,一定要設置STYLE_NORMAL到您的對話框片段。爲此,您需要在對話框片段的OnCreate回調方法中添加以下行。

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setStyle(DialogFragment.STYLE_NORMAL, 0); 
}