Не удалось заставить кнопку возврата работать

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

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

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;
    }

ГДЕ: - введенное число - это просто переменная типа String.


person Kaushik Saha    schedule 01.12.2014    source источник
comment
Спасибо Remees за предложение формата. Это была ошибка с моей стороны. Любые предложения о решении?   -  person Kaushik Saha    schedule 01.12.2014
comment
Используете ли вы прослушиватель onTextChanged в своем тексте редактирования?   -  person Darpan    schedule 01.12.2014
comment
Нет Darpan, я не использую onTextChangedListener. Я ввожу числа в представление следующим образом: one.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { enterAmount.setText(addCurrency(1)); } });   -  person Kaushik Saha    schedule 01.12.2014


Ответы (1)


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

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));
}
person Darpan    schedule 01.12.2014