numberPicker上的onChangeListener

时间:2012-09-17 16:42:34

标签: android keyboard focus android-softkeyboard picker

只有当软键盘输入一个数字时,是否可以为numberPicker设置onChangeListener? 当数字改变为gy +/-时,不应执行监听器。仅当用户从软键盘输入数字时。

目标是在用户输入上一个项目中的数字后,下一个选择项应该获得焦点。 因此,用户准备输入“12345”之类的数字,每个选择项都有自己的值:

Picker0=1
Picker1=2
Picker3=3
Picker4=4
Picker5=5

我认为可能还是错误的方式?

1 个答案:

答案 0 :(得分:1)

就个人而言,当我犯错误时,我不喜欢单独移动的焦点 - 例如,如果我按下4而不是5并且它将我带到下一个选择器,我会感到恼火。您可以考虑在用户点击回车键时更改焦点...无论哪种方式,您都需要在活动或对话框中设置onKeyUp事件,查找代表焦点变化的键码(输入密钥)或数字)

public boolean onKeyUp(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_ENTER)
    //blah
    return true;
  }
  else if (keyCode == KeyEvent.KEYCODE_1) // sadly you'll have to put in a
    //blah                                // comparison for each number here
    return false; // Return false b/c you want the picker to receive number input
  }
  return false;
}