在写DatePickerDialog的时候经常会出现月份是中文(或者是英文字母)的情况,如下图,这时候可恶的老板却总是要求必须要数字显示,废话不多说,直接上代码。












public class NewDatePicker extends DatePickerDialog {

     private String[] mDisplayMonths = {"1", "2", "3","4", "5", "6","7", "8", "9","10", "11", "12"};


@SuppressLint("NewApi")

@Override

public void onDateChanged(DatePicker view, int year, int month, int day) {

super.onDateChanged(view, year, month, day);

setTitle(year, month, day);

         //关键行

        ((NumberPicker)((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(1)).setDisplayedValues(mDisplayMonths);

}


}

主要意思就是找到DatePicker里面月份的显示NumberPicker,然后设定显示值。

这样就可以了。。。。。调节的时候就是数字显示了

but

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。


在第一次显示的时候还是没有变化,所以在首次调用的时候,我们需要加入以下代码

dialog.show();

DatePicker dp = findDatePicker((ViewGroup) dialog.getWindow().getDecorView());

if (dp != null) {

     ((NumberPicker) ((ViewGroup) ((ViewGroup) dp.getChildAt(0)).getChildAt(0)).getChildAt(1)).setDisplayedValues(mDisplayMonths);

}

主要的意思就是找到dialog里面的DatePicker,然后再设定一次。。。。。。。这样就结束了


效果如下



更多相关文章

  1. Android(安卓)EditText.setError() - 会弹出一个popupwindow,效果
  2. Android(安卓)ListView中动态显示和隐藏Header&Footer的方法(转)
  3. android wifi讲解 wifi列表显示
  4. 如何判断Activity是否在前台显示
  5. 《第一行代码Android》学习总结第三章 编写聊天界面实践
  6. 学习Android之SimpleAdapter显示网络图片
  7. android通过线程实现逐行显示信息
  8. android之Pickers
  9. Android(安卓)TextInputLayout,打造 Material Design 风格的文本

随机推荐

  1. android:process的坑,你懂吗?
  2. android mediareorder 使用实践总结
  3. Android API开发之蓝牙开发之Android蓝牙
  4. Android状态栏黑色字体
  5. 如何利用android ADK访问外围设备
  6. Android系统框架和几种调用流程
  7. 系统命令行运行 android app程序
  8. Android 亮度调节
  9. Android(安卓)CardView+RecyclerView实现
  10. Android仿苹果关机界面实现代码