Как отфильтровать ключи в MIDP TextField? - PullRequest
2 голосов
/ 18 февраля 2010

У меня есть TextField.PhoneNumber, но я бы хотел отфильтровать символ "+". Другими словами, мне нужно новое ограничение для TextField. Есть ли способ определить новое ограничение с TextField?

Как насчет предотвращения зацикливания клавиш на мобильном телефоне в мидпе?

1 Ответ

1 голос
/ 19 февраля 2010

Это может быть не то, что вы действительно хотите. Но MIDP не поддерживает правило ограничения изменений, как вы хотите. Итак, я предлагаю HACK для вашей цели.

Как насчет использования ItemStateListener для проверки, содержит ли текстовое поле строку, которую вы хотите отфильтровать, и, если эта строка существует, принудительно измените текстовое поле.

Код может выглядеть следующим образом:

// set item state listener
form.setItemStateListener(this);

// check if text field contains invalid string
// then replace it
public void itemStateChanged(Item item) {
    if (item == getTextField()) {
        TextField t = (TextField)item;
        String s = t.getString();
        // + is invalid string
        int pos = s.indexOf("+");
        if (pos != -1) {
            t.setString(s.substring(0, pos) + s.substring(pos + 1));
        }
    }
}
...