相关疑难解决方法(0)

如何从软键盘上按下"完成"按键

如何从软键盘捕获特定的键事件?特别是我对"完成"键很感兴趣.

android

61
推荐指数
5
解决办法
5万
查看次数

Android NumberPicker小部件,如何通过软键盘输入值?

我无法让我的编辑字段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>
Run Code Online (Sandbox Code Playgroud)

和我的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.");
        }
    });
Run Code Online (Sandbox Code Playgroud)

从Activity中退出时,我得到的值如下:

            mNights = mNumNights.getValue();
Run Code Online (Sandbox Code Playgroud)

我在Android NumberPicker文档中没有看到任何其他方法.我确实看到一个帖子建议挂钩onEditorActionListener()以获得完成按钮,但这并没有告诉我如何获得价值!总而言之,我的问题是如何获取值以及为什么NumberPicker不会自动更新其值?

谢谢!

编辑:我碰到这个偶然SO问题,这是非常相似,我的问题,答案有看有帮助,虽然我希望能有一个更好的方法比建议在那里.

android android-softkeyboard numberpicker

8
推荐指数
1
解决办法
6725
查看次数