NumberPicker设置字符格式化时第一次不起效

用了NumberPicker来实现一个选择器的时候发现一个问题,选择器中的文本是可以被自己定制的,然后当选择器第一次加载的时候,定制的样式会显示不出来。搜寻一番后终于发现问题所在,记录一下。

NumberPicker picker = (NumberPicker)view.findViewById(id.picker);
picker.setMinValue(0);
picker.setMaxValue(100);
picker.setWrapSelectorWheel(false);
picker.setFormatter(new NumberPicker.Formatter() {
    @Override
    public String format(int value) {
        return String.valueOf(50-value);
    }
});
//解决选择器加载后,第一次无法应用Formatter的问题
try {
    Method method = picker.getClass().getDeclaredMethod("changeValueByOne", boolean.class);
    method.setAccessible(true);
    method.invoke(picker, true);
} catch (NoSuchMethodException e) {
    e.printStackTrace();
} catch (IllegalArgumentException e) {
    e.printStackTrace();
} catch (IllegalAccessException e) {
    e.printStackTrace();
} catch (InvocationTargetException e) {
    e.printStackTrace();
}
欢迎共同探讨更多安卓,java,c/c++相关技术QQ群:392154157

你可能感兴趣的:(NumberPicker设置字符格式化时第一次不起效)