2015-02-10 1 views
2

Я делаю приложение, которое может вычислять payOnloan, prepaid и т. Д. (Проект за 3 месяца от моего руководителя, у меня есть стажер). Но я застрял в некоторые point.I хотят иметь EditText, где он будет автоматически изменять свое значение, в данном случае чисел мы вход в value.Example:Изменение входа в EditText на Android, когда мы печатаем на нем (номер)

типа 1 при е на выходе EditText когда мы наберем 10 в EditText выход при вводе 100 в редактореText output при вводе 1.000 в EditText Выход +1,000 , когда мы вводим 10,000 на выходе EditText 10,000 и так далее .. (до 1.000.000.000.000) примечание: для одного EditText, я не имею в виду мы даем вход на него и на выходе также на то же самое edittext

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

я не могу прикрепить изображение файла SRY о том, что

заранее спасибо,

С уважением, Джордж

+1

Итак, если вы правильно поняли, у вас есть текстовое поле «Редактировать» и все, что вы вводите внутри, что оно должно отражаться на каком-либо другом представлении? Если это так, текстовый наблюдатель - это то, что вы ищете. – Skynet

+1

его как автоматически добавить «.» (Период) каждый раз, когда ввод (число) имеет более 3 цифр, пример 1000> до 1.000, 1000000 до 1.000.000 (это будет происходить при вводе (в текстовом поле редактирования)) .В соответствии с форматом валюты –

+0

Вам все равно нужен текстовый наблюдатель. – Skynet

ответ

2

Как вы определяете десятичный формат?

Попробуйте что-нибудь подобное.

DecimalFormat formattedStuff = new DecimalFormat("#,###,###,###,##0"); 
String recieved = yourEditText.getText().toString(); 
yourEditText.setText(formattedStuff.format(recieved)); 
+1

его не десятичное значение, поскольку в поле EditText также могут быть любые цифры, например ...... 12345678 до 12.345.678 –

+1

Ознакомьтесь с http://developer.android.com/reference/java/текст/DecimalFormat.html Например, если первичный интервал группировки равен 3, а вторичный - 2, то это соответствует шаблону «#, ##, ## 0», а номер 123456789 отформатирован как «12,34,56,789». Если шаблон содержит несколько разделителей группировки, интервал между последним и конец целого определяет размер основной группировки, а интервал между двумя последними определяет размер вторичной группировки. Все остальные игнорируются, поэтому «#, ##, ###, ####», «###, ###, ####» и «##, #, ###, ### # "дают тот же результат. – DevJem

+0

новый DecimalFormat ("#, ###, ###, ###, ## 0"); Это будет работать для не десятичных чисел. Если вам действительно нужны десятичные знаки, вы можете использовать новый DecimalFormat ("#, ###, ###, ###, ## 0. ##"); Обратите внимание на разницу в использовании запятой и периодом, они важны. – DevJem

2

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

Вот пример текста сторожа:

final TextWatcher mTextEditorWatcher = new TextWatcher(){ 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 


     } 

     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      yourView.setText(yourEditText.getText().toString()); 
     } 

     public void afterTextChanged(Editable s) { 

     } 
    }; 

Обратите внимание: public void onTextChanged Однако остерегайтесь нулевых значений!

Проверить длину вашего номера в текстовом сторожа на textChange и использовать следующие операции для добавления десятичных знаков:

DecimalFormat df = new DecimalFormat("#.00"); 
    String inputFormated = df.format(yourEditText.getText.toString()); 
    System.out.println(inputFormated); 
+0

лучше ли разместить это на главном коде или создать новый класс для его обработки? –

+0

Это ваш звонок, поскольку я не знаю вашего прецедента. Однако Textwatcher несет незначительные накладные расходы. – Skynet

+0

Ваш вопрос, который я боюсь, совсем не ясен. – Skynet

Смежные вопросы