将Android中DatePickerDialog中月份的中文变成数字

在写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,然后再设定一次。。。。。。。这样就结束了


效果如下



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值