我无法让我的编辑字段NumberPicker
正常工作,我已经阅读了几个对类似问题有帮助的答案,但似乎都没有解决这个特定问题。尽管递增和递减按钮确实可以正常工作,但如果我使用软键盘输入一个数字,我将无法使用该NumberPicker.getValue()
方法检索该值。我尝试使用自己的NumberPicker.OnValueChangedListener()
,但除非我单击向上或向下按钮,否则不会调用它,而不是像某些人建议的那样按下软键盘完成按钮。有人可以帮我吗?这是Android错误吗?
这是我的 XML 布局:
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:id="@+id/textView1" android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_height="wrap_content" android:text="@string/enter_nights_"
android:layout_width="0dp" android:padding="10dip"
android:textColor="@color/black"
></TextView>
<NumberPicker
android:id="@+id/numPick"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
以及来自我的 Activity onCreate() 的初始化代码:
mNumNights = (NumberPicker) findViewById(R.id.numPick);
mNumNights.setMinValue(1);
mNumNights.setMaxValue(99);
mNumNights.setValue(mNights);
mNumNights.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
// do something here
Log.d(TAG, "Number of Nights change value.");
}
});
从 Activity 退出时,我得到如下值:
mNights = mNumNights.getValue();
我在Android NumberPicker 文档中看不到任何其他方法。我确实看到了一篇建议挂钩以获得“完成”按钮的帖子onEditorActionListener()
,但这并没有告诉我如何获得价值!所以,总而言之,我的问题是如何获取值,为什么 NumberPicker 不自动更新其值?
谢谢!
编辑:我偶然发现了这个与我的问题非常相似的SO question,那里的答案看起来很有帮助,尽管我希望有比那里建议的更好的方法。