0

我有一个自定义日期选择器,它扩展了日期选择器。

我在加载组件时初始化了月份样式:

private void updateCustomStyle() {
    ViewGroup childPicker = (ViewGroup)
                findViewById(Resources.getSystem().getIdentifier("month" /*rest is:
                day, year*/, "id", "android"));

                EditText textview = (EditText)
                        childPicker.getChildAt(0);
                textview.setTextSize(35);
                textview.setTextColor(Color.GREEN);
                textview.invalidate();

}

在此之后,日期选择器被加载,月份字体更大,颜色为绿色。问题发生在我将月份滚动到另一个月份后,我有一个在初始化时定义的日期更改侦听器:

this.init(agora.getYear(), agora.getMonth(), agora.getDate(),
            this.getOnDataChangedListener());

在数据更改侦听器上,我有这个电话:

@Override
        public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            updateCustomStyle();
        }

但在我滚动到另一个月后,它仍然恢复到原来的风格。对此有何建议?

这种方法适用于 Android 3.1 和 4.0。问题出现在 android 4.1.2 及更高版本上。有任何想法吗?

4

1 回答 1

0

经过大量研究后,我发现你不能像在以前的版本上那样在 android 4.1.X 上做那种选择风格。您可以做的是创建一个扩展 NumberPicker 的类并添加以下代码:

if (child instanceof EditText) {
        ((EditText) child).setTextSize(35);
}

但是您仍然无法对选定的数字使用不同的样式,所以我所做的是使用 simonVT numberpicker ( https://github.com/SimonVT/android-numberpicker ) 在一些定制解决了问题之后。

于 2013-05-17T12:28:17.023 回答