Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android NumberPicker不保存编辑文本更改_Android_Android Widget - Fatal编程技术网

Android NumberPicker不保存编辑文本更改

Android NumberPicker不保存编辑文本更改,android,android-widget,Android,Android Widget,我已经将Android的NumberPicker小部件复制到我自己的应用程序中,但我有一个问题 当有人手动单击编辑文本并通过键盘对其进行更改时,所选内容不会保存。我是否可以实现一些侦听器来检查用户是否手动更改EditText以将其设置为当前文本?或者什么?您可以尝试将TextWatcher设置为您的EditText以执行相同的操作,或者不允许用户在此处手动输入值 或者保留一个OK按钮,仅当用户单击OK按钮时才从EditText中取出值 你试过这个样品吗 不确定您是否使用了与我相同的Numberp

我已经将Android的NumberPicker小部件复制到我自己的应用程序中,但我有一个问题


当有人手动单击编辑文本并通过键盘对其进行更改时,所选内容不会保存。我是否可以实现一些侦听器来检查用户是否手动更改EditText以将其设置为当前文本?或者什么?

您可以尝试将TextWatcher设置为您的EditText以执行相同的操作,或者不允许用户在此处手动输入值

或者保留一个OK按钮,仅当用户单击OK按钮时才从EditText中取出值

你试过这个样品吗


不确定您是否使用了与我相同的Numberpicker:。我尝试在NumberClass中添加一个OnEditorActionListener,似乎它解决了我的问题

  • 修改NumberPicker.java,让它扩展OnEditorActionListener
  • 添加mText.setOnEditorActionListener(此)到NumberPicker构造函数
  • 实施一个编辑操作:

    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        validateInput(v);
        return false;
    }
    

希望它能有所帮助。

我在使用numberpicker时也遇到了同样的问题,我通过在numberpicker类中添加OnKeyListener(而不是Junzi已经建议的OnEditorActionListener)解决了这个问题。其他步骤相同,因此:

  • 让NumberPicker.java扩展OnKeyListener
  • 添加mText.setOnKeyListener(此)到NumberPicker构造函数
  • 执行OnKey:


  • 我用了迈克尔·诺瓦克的号码选择器。尽管onEditorAction已经实现,但它没有正确设置输入。对我来说,最简单的解决方法是在getCurrent中调用textView上的validateInput

    /**
     * @return the current value.
     */
    public int getCurrent() {
        validateInput(mText);
        return mCurrent;
    }
    

    如果您使用Android4.0.x中的Android NumberPicker,意味着您可以使用getValue()获取NumberPicker的值。 ()

    这是一种在安卓4.0.x中获取Numberpicker的简单方法

    final NumberPicker np=新的NumberPicker(CustomizedListView.this);
    np.setMinValue(0);
    np.setMaxValue(100);
    np.setWrapSelectorWheel(真)
    
    您可以使用np.getValue()方法获取值。

    我在android开发者google group的某个地方发现了这个解决方案:

    对于android SDK NumberPicker小部件,只需使用:

    myNumberPicker.clearFocus();
    
    在你试图得到它的价值之前。
    当您有一个活动只有NumberPicker和一个按钮或微调器,并且您编辑它并尝试单击其他位置时,它的onFocusChangedListener未被正确处理。因此,在使用getValue()之前,只需强制它失去焦点。工作对我来说很有魅力。

    是的,这正是我如何在NumberPicker上复制的。遗憾的是,我希望用户能够手动输入他们的分数。您是否尝试将文本监视程序设置为您的EditText。。?检查这个帖子很好。。。为我工作。这是设计的,但实施得很差。您必须使用键盘提交值。
    myNumberPicker.clearFocus();