Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 17 дек 2018, 04:26

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 13:38 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Что-то запутался, как стандартными средствами поделить строку в Edittext? К примеру мне надо ввести IMEI. Я ввожу и хочу их визуально разделить по 3 символа.
Поделил так
Код: [ Загрузить ] [ Скрыть ]
Using Java(TM) 2 Platform Standard Edition 5.0 Syntax Highlighting
  1.             public void onTextChanged(CharSequence s, int start, int before, int count) {
  2.                 String imei = mImei.getText().toString().replaceAll("[^0-9]", "");
  3.                 String[] imeiParts = imei.split("(?<=\\G.{3})");
  4.                 String formattedString = "";
  5.                 for (int i=0;i<imeiParts.length;++i) {
  6.                     formattedString += imeiParts[i] + " ";
  7.                 }
  8.                 mImei.setText(formattedString);
  9.             }
  10.  

В итоге при смене строки в конце метода, нас снова бросает в данный метод (onTextChanged), что в принципе логично. Можно добавить флаг, но может есть какие-то более гуманные решения как можно делить введенный текст в EditText? Какие-то отдельные либы лучше не использовать.

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 13:55 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
конечно, какой-то визуальный вид для пользователя удобнее, но вот когда редактируешь такой текст, то добавляемые символы-разделители ужасно путают ввод, а пользователя без клавиатуры (а даже и с клавиатурой) ужасно бесят.

имхо, если и использовать какой-то формат у EditText, то так, чтоб когда пользователь вводит символы - то пробелов-черточек-прочего не было бы (т.е. при фокусировании-клике на тексте), а когда уходит с поля - то оно бы форматировалось. Либо так, чтоб эти "пробелы" были нередактируемыми (проскакиваемыми).
Не знаю, понятно ли выразилась. В виндах есть такое когда вводишь в поле символы там такая маска типа
_____.__ где ты не можешь поставить ничего в позицию точки.

Я не помню есть ли для этого способ, честно говоря.. надо подумать. Но я юзаю форматы для чисел (например, деньги) когда показываю текст уже готовый в TextView, а не в EditText.

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 14:01 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
Если уж все-таки хочешь это делатЬ, то посмотри пример тут
http://cmikavac.net/2014/01/16/android- ... ormatting/
там в методе
setMacEdit()
есть строка
mMacEdit.removeTextChangedListener(this);
а так же по-моему учитывается то, что пользователь может "вдохновиться" и сам проставлять разделители при вводе/редактировании.

но все равно я думаю, что это лишнее.

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 14:07 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Цитата:
но вот когда редактируешь такой текст, то добавляемые символы-разделители ужасно путают ввод, а пользователя без клавиатуры (а даже и с клавиатурой) ужасно бесят.

Чем же может бесить вполне адекватное разделение цифр? Если вводить 15 цифр подряд, то глаз банально не может определить как длину, так еще и вероятность получения ошибки вырастает на порядок. Будут использоваться именно пробелы.
Цитата:

789403678956745
789 403 678 956 745

Цитата:
а когда уходит с поля - то оно бы форматировалось.

Зачастую люди не уходят с поля, а сразу кликают по кнопке "done", либо по какой-то своей кнопке (т.е. они в обоих случаях находятся в фокусе EditText)
Цитата:
Либо так, чтоб эти "пробелы" были нередактируемыми (проскакиваемыми).

ну думаю это не совсем обязательно, ибо генератор строки должен быть в onTextChanged, который в свою очередь сгенерирует опять таки удалённый пробел.

Это мелочи. Мне интересно решение проблемы.

Цитата:
Если уж все-таки хочешь это делатЬ, то посмотри пример тут

Спасибо, чуть позже гляну.

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 14:17 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
у тебя свое видение, у меня свое. Я лишь его высказала.
я не говорила, что неудобно - удобен ПРОСМОТР. А вот ввод и редактирование, когда туда затесываются другие символы, которые ты не вводил - это не удобно. Особенно на планшете.
Иногда еще так делают. Вносишь символы, а сверху нередактируемый аналог TextView, где есть удобный форматнутый вид введенного значения.
или как всегда вводился код винды - в окошках по четыре символа.

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 14:27 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Цитата:
Иногда еще так делают. Вносишь символы, а сверху нередактируемый аналог TextView, где есть удобный форматнутый вид введенного значения.

Это же полная жесть. Ну если я сделал ошибку, то я должен буду переводить свой взгляд с форматнутого вида в неформатнутый и искать ошибку. ИМХО, таких сразу бы отстреливать.
Я думал про код винды, но это немного не согласуется с самой сущностью "IMEI".

Я понял что это твое видение. Но читабельность куда более выше приоритетом, нежели удобство форматирования.
Кстати я понял что тут есть доля правды на счет пробелов, ибо пробел нельзя будет удалить, потому как код автоматически переформатируется и пробел обратно поставится. Буду думать.

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 14:50 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
когда я экспериментировала с подобным форматированием суммы (где пробелы ставятся между каждыми тремя символами) и ее редактированием, то сразу отказалась от подобной расстановки пробелов. Вот где жесть.

С отстреливанием я бы не торопилась - ни в каких случаях. Каждого нужно пытаться ПОНЯТЬ, все имеет свою, скрытую от нас причину.

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 14:58 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Я тебя умоляю, каждого понять...
viewtopic.php?f=50&t=4797 - вот его ты смогла понять? :-D

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 15:09 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
а там без расстрелов обошлось, не заметил?

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 15:11 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
И очень зря. Глядишь, маркет бы бы почище.

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 15:21 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
моя фраза в данной теме к маркету не относилась.

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 15:24 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Я прекрасно понимаю о чем ты говоришь (Прям занудство какое-то)
И если на то пошло, то я не спрашивал в теме вообще о том, правильно это или нет. Так что: мой топик к размышлениям о правильности данного подхода не относится.

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 15:46 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
а "если на то пошло" - перечитай мой ответ. Там было слово "имхо" и не было ни слова, чтоб переманить тебя в другой лагерь, убедить и как-то еще воздействовать лично на тебя. А высказывать свое мнение в каких угодно ветках мне никто не запретит.

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 15:49 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Кто же тебя запрещает, я просто указал на твою "нудистику"

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 15:59 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
а зачем?

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: поделить строку в EditText
СообщениеДобавлено: 08 окт 2014, 16:07 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Ясно всё. Нет смысла дальше дискуссировать. Всё равно не поможет.

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB