<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="html"><pre name="code" class="html">
最近的项目 由于赶进度就直接使用了系统自带的日期选择器,但是做图表选择年份的时候遇到“胡同”了,只显示年份。去网上搜了下 有解决方法可以隐藏月日的(就是只让第一个位置的NumberPicker显示),但是那种方式只能在中文韩文等语言下可以,英文的话顺序是不一样的。下面2张图是中英文语言下的显示方式:
这样年的位置就不固定了,所以我要继续找解决方法。由于我用的4.4的api,于是乎自己去看了下4.4的源码 ,然后找到了这个东东:下面代理里面根据当前语言格式解析出来的char[]然后顺序显示年月日的顺序,那么我的下手点就很明确了,我要找到这个char[]里面‘y’的位置。
private void reorderSpinners() {
mSpinners.removeAllViews();
// We use numeric spinners for year and day, but textual months. Ask icu4c what
// order the user's locale uses for that combination. http://b/7207103.
String pattern = ICU.getBestDateTimePattern("yyyyMMMdd", Locale.getDefault().toString());
char[] order = ICU.getDateFormatOrder(pattern);
final int spinnerCount = order.length;
for (int i = 0; i < spinnerCount; i++) {
switch (order[i]) {
case 'd':
mSpinners.addView(mDaySpinner);
setImeOptions(mDaySpinner, spinnerCount, i);
break;
case 'M':
mSpinners.addView(mMonthSpinner);
setIm