首先,我想说我正在使用Android 5.1
我在Number Picker小部件中有关注数字的问题。 当我运行我的应用程序并使用此小部件选择片段时 - 聚焦的数字为空白。
XML:
<NumberPicker
android:id="@+id/NumberPicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="20dp"
android:layout_gravity="center"
android:descendantFocusability="blocksDescendants"
/>
我的片段中的方法:
public void setNumberPickerParameters(){
mNumPicker.setMinValue(1);
mNumPicker.setMaxValue(18);
mNumPicker.setValue(6);
mNumPicker.setFormatter(new NumberPicker.Formatter() {
@Override
public String format(int value) {
return String.valueOf(value * 10);
}
});
Log.v(SETTINGS, "Picked number: " + mNumPicker.getValue() );
}
答案 0 :(得分:2)
我遇到了同样的问题,当我点击该值时,我认为它正在将颜色更改为白色,但这并不是它导致它的原因。
真正的问题是格式化。当没有使用setDisplayValues时,它是由EditText上的输入过滤器引起的。不幸的是,反思就是解决方案:
try {
Field f = NumberPicker.class.getDeclaredField("mInputText");
f.setAccessible(true);
EditText inputText = (EditText) f.get(numberPicker);
inputText.setFilters(new InputFilter[0]);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
我对不同Android版本的体验对于NumberPicker来说并不是那么好。(我没有使用最新版本)
我用我自己的实现扩展了NP类。
一个很好的例子是这样的:
Android NumberPicker: Set min, max, default from XML
祝你好运!!