Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
User interface 在这种情况下,如何在blackberry中处理Focuschangelistener?_User Interface_Validation_Blackberry - Fatal编程技术网

User interface 在这种情况下,如何在blackberry中处理Focuschangelistener?

User interface 在这种情况下,如何在blackberry中处理Focuschangelistener?,user-interface,validation,blackberry,User Interface,Validation,Blackberry,我有三个EditField,第二个EditField有一个设置焦点Listener。当焦点丢失时,我正在检查字段是否为空。如果字段为空,它将显示弹出消息。现在的问题是,一旦用户来到该字段,他不能移动到其他字段而不输入任何字段,但我希望用户可以移动到该字段上方的字段,他不能移动到下方现场。如何处理这种情况?请分享您的想法。我想这是为了验证功能? 参见建议的验证策略:我们有可验证的接口,可检查其是否有正确的数据: interface IValidated { public boolean vali

我有三个EditField,第二个EditField有一个设置焦点Listener。当焦点丢失时,我正在检查字段是否为空。如果字段为空,它将显示弹出消息。现在的问题是,一旦用户来到该字段,他不能移动到其他字段而不输入任何字段,但我希望用户可以移动到该字段上方的字段,他不能移动到下方现场。如何处理这种情况?请分享您的想法。

我想这是为了验证功能? 参见建议的验证策略:我们有可验证的接口,可检查其是否有正确的数据:

interface IValidated {
 public boolean validate();
}
现在,任何字段,如列表、复选框或选项都可以实现它。
接下来,每个字段中都有一个onFocus事件,在这里您可以验证以前的有效字段,并在失败时将焦点设置回原处

请参见EditField示例:

class ValidatedEdit extends BasicEditField implements IValidated {
 private static final String EMPTY_STRING = "";

 public ValidatedEdit(String label, String value) {
  super(label, value);
 }

 protected void onFocus(int direction) {
  // it's from upper field
  if (direction > 0 && getIndex() > 0) {
   // get upper field
   Field field = getManager().getField(getIndex() - 1);
   // if its IValidated
   if (field instanceof IValidated) {
    IValidated validated = (IValidated) field;
    // validate, if false set focus to IValidated
    if (!validated.validate()) {
     field.setFocus();
     return;
    }
   }
  }
  super.onFocus(direction);
 }

 public boolean validate() {
  return !getText().equalsIgnoreCase(EMPTY_STRING);
 }
}
使用示例:

class Scr extends MainScreen {
 ValidatedEdit mEditField1 = new ValidatedEdit("field#1", "");
 ValidatedEdit mEditField2 = new ValidatedEdit("field#2", "");
 ValidatedEdit mEditField3 = new ValidatedEdit("field#3", "");

 public Scr() {
  add(mEditField1);
  add(mEditField2);
  add(mEditField3);
 }
}

所以,您希望允许用户从空字段转到上一个字段,但禁止移动下一个字段?