1

仅当软键盘输入数字时,是否可以为 numberPicker 设置 onChangeListener?当数字更改 gy +/- 时,不应执行 Listener。仅当用户从软键盘输入数字时。

目标是在用户在前一项中输入数字后,下一个选择项应该获得焦点。所以用户准备好输入一个像“12345”这样的数字,每个pickeritem都有自己的值:

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

这是可能的还是错误的方式?

4

1 回答 1

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;
}
于 2012-09-17T17:00:31.783 回答