我的BlackBerry应用程序中有五个EditField
个对象,每个对象只接受一个数字字符。
我想在输入字符时将焦点从第一个EditField
更改为第二个EditField
。请注意,从一个到另一个EditField
的焦点必须自动进行,而不是按Enter键或其他键。
答案 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();
}
}
}
}