2014-12-01 4 views
1

Я добавляю кнопку backspace в свое приложение для калькулятора, и он отлично работает. Проблема заключается в том, что по умолчанию мой калькулятор берет цифры из десятичной части, то есть изначально она равна 0,00, когда я ввожу 1, она становится 0.01, когда я ввожу 2, она становится равной 0,12 и так далее и так далее. Теперь, когда я нажимаю backspace, он удаляет 2 и показывает 0,01, но если я нажму 3, а не покажу 0.13, это покажет 1.23. Как это решить?Невозможно сделать функцию кнопки backspace

код для кнопки возврата: -

private String addCurrency(String digits) { 
     String string = ""; // Your currency 

     enteredNumber = enteredNumber + digits; 
     // Amount length greater than 2 means we need to add a decimal point 
     if (enteredNumber.length() > 2) { 
      String rupee = enteredNumber.substring(0, 
        enteredNumber.length() - 2); // Pound part 
      String paise = enteredNumber.substring(enteredNumber.length() - 2); // Pence 
                       // part 
      if (enteredNumber.contains(".")) { 

      } 

      string += rupee + "." + paise; 
     } else if (enteredNumber.length() == 1) { 
      string += "0.0" + enteredNumber; 
      Log.d("TextWatcher", "length 1 " + string); 
     } else if (enteredNumber.length() == 2) { 
      string += "0." + enteredNumber; 
      Log.d("TextWatcher", "length 2 " + string); 
     } 

     return string; 
    } 

ГДЕ: - enteredNumber просто тип переменной типа String.

+0

Спасибо, что предложили формат. Это была ошибка с моей стороны. Какие-либо предложения по поводу решения? – Kaushik

+0

Используете ли вы прослушиватель onTextChanged на своем edittext – Darpan

+0

Нет Дарпан, я не использую onTextChangedListener. Путь, я ввод номера в представлении, как это: - one.setOnClickListener (новый View.OnClickListener() { \t \t \t @Override \t \t \t общественный недействительный OnClick (View v) { \t \t \t \t enterAmount.setText (addCurrency ("1")); \t \t \t} \t \t}); – Kaushik

ответ

0

Если вы хотите показывать свои номера с двумя десятичными знаками все время, то почему так много неприятностей? Используйте это -

public void getMyNumber(String yourInputNumber){ 
    Double result = Integer.ParseInt(yourInputNumber)/100; 
    private static DecimalFormat REAL_FORMATTER = new DecimalFormat("0.##"); 
    textview1.setText(REAL_FORMATTER.format(result)); 
}