Money: юзабилити стало лучше

Неоднократно я получал жалобы по поводу того, что неудобно вводить сумму в Money: приходилось переключать режим ввода с буквенного на циферный. Я отнекивался и говорил, что подобное поведение обусловлено необходимостью поддержки старых телефонов с MIDP 1.0, у которых нет режима ввода чисел с десятыми и сотыми.

Но теперь я нашёл способ обойти эту проблему. Где были мои мозги! Теперь для всех современных телефонов тип ввода должен стать гораздо удобнее. И работоспособность старых телефонов также сохранена.

Скачивайте и сообщайте, если у вас что-то не работает.

Кому интересно, как это было сделано, прошу сюда:

Для начала мы определим с каким профилем MIDP 1.0 или старше имеем дело. Если мы имеем дело не с MIDP 2.0, 2.1 или 3.0, мы используем константу TextField.ANY. В противном случае мы возвращаем цифру 5, что является ничем иным, как численным значением константы TextField.DECIMAL. Поддерживаемые профили содержатся в системном свойстве «microedition.profiles». Получилось вот это:


private int getSumTextFieldType() {
String profiles =
System.getProperty("microedition.profiles");
if (profiles != null && (profiles.indexOf("2.0") >= 0 ||
profiles.indexOf("2.1") >= 0 ||
profiles.indexOf("3.0") >= 0)) {
return 5; // TextField.DECIMAL constant value
}
return TextField.ANY;
}

Запись опубликована в рубрике Uncategorized с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *