3

私のBlackBerryアプリには5つEditFieldのオブジェクトがあり、それぞれが1つの数字のみを受け入れます。

文字を入力したときに、フォーカスを1番目EditFieldから2番目に変更したい。Enterキーやその他のキーを押すのではなくEditField、フォーカスが自動的に移動する必要があることに注意してください。EditField

4

2 に答える 2

4

フィールドの内容が変更されたときに監視するにFieldChangeListenerを設定します。EditFieldユーザーが1つの文字を入力したら、を呼び出して次のフィールドに移動できますField.setFocus()

于 2012-08-21T14:08:30.307 に答える
2

EditFieldあなたのが1つずつ画面に追加されると仮定しましょう。

次のコードを使用できます。

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();
        }
     }
   }
}
于 2012-08-21T14:15:47.400 に答える