2013-02-06 119 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); 
}