在Blackberry中的Editfields中自动更改焦点

时间:2012-08-21 14:03:10

标签: blackberry event-handling focus textfield blackberry-editfield

我的BlackBerry应用程序中有五个EditField个对象,每个对象只接受一个数字字符。

我想在输入字符时将焦点从第一个EditField更改为第二个EditField。请注意,从一个到另一个EditField的焦点必须自动进行,而不是按Enter键或其他键。

2 个答案:

答案 0 :(得分:4)

您希望在FieldChangeListener上设置EditField以监控字段内容何时发生变化。用户输入单个字符后,您可以通过调用Field.setFocus()移至下一个字段。

答案 1 :(得分:2)

让我们假设你的EditField被逐一添加到屏幕上。

您可以使用下一个代码:

editField<i>.setFieldChangeListener(this);
...
public void fieldChanged(Field field, int status) {
   if (field instanceof EditField) {
     EditField editField = (EditField)field;
     if (field.getText().length() > 0) {//don't move focus in case of deleted text
        Manager manager = field.getManager();
        Field nextField = manager.getField(manager.getFieldIndex(editField) + 1);
        if (nextField instanceof EditField) {
           nextField.setFocus();
        }
     }
   }
}