Как игнорировать пустой EditText? - PullRequest
0 голосов
/ 03 марта 2019

У меня есть 6 Редактировать текст , что если пользовательский ввод все из них выполнит некоторые вычисления, я хочу проигнорировать Пустой Редактировать текст, чтобы мое приложение не зависало, если нет ввода, я нахожу способно это болезненно и отнимает много времени, чтобы поставить каждую возможность для редактирования текста.Для сложения я нахожу простым, почему просто проверить, является ли текст редактирования пустым, положить значение 0,

Edittext.SetText("0");

Так что я могу выполнить сложение, если только для примера даны 3 ввода, такие как ed1=1, ed=1, ed3=1

edTotal = 1 + 1 + 1 + 0 + 0 + 0 = 3;

у меня проблемы с другими операциями, если при делении или умножении мы не можем установить его на ноль, это изменит результат.

И извините, все еще учуськод. Спасибо за любую помощь.

Ответы [ 3 ]

0 голосов
/ 03 марта 2019

Я написал несколько утилит, которые вы можете использовать.Вам нужно будет удалить значение по умолчанию «0», которое вы используете в данный момент.Таким образом, если EditText не имеет Integer вычисления значения для этого EditText, будет пропущено.

Измените эти функции для своих нужд:)

private void addValueFromEditText(EditText yourEditText) {
    try {
        edTotal += Integer.valueOf(yourEditText.getText().toString());
    } catch (NumberFormatException exception) {
        Toast.makeText(context, yourEditText + " has non Integer value", Toast.LENGTH_SHORT).show();
    }
}

private void multiplyByValueFromEditText(EditText yourEditText) {
    try {
        edTotal *= Integer.valueOf(yourEditText.getText().toString());
    } catch (NumberFormatException exception) {
        Toast.makeText(context, yourEditText + " has non Integer value", Toast.LENGTH_SHORT).show();
    }
}

private void divideByValueFromEditText(EditText yourEditText) {
    try {
        edTotal /= Integer.valueOf(yourEditText.getText().toString());
    } catch (NumberFormatException exception) {
        Toast.makeText(context, yourEditText + " has non Integer value", Toast.LENGTH_SHORT).show();
    }

private void sumAllEditTexts() {
    addValueFromEditText(ed1);
    addValueFromEditText(ed2);
    addValueFromEditText(ed3);
    addValueFromEditText(ed4);
    addValueFromEditText(ed5);
    addValueFromEditText(ed6);
}

}

Редактировать Добавлен пример метода использования.Или вы можете просто перебрать свой контейнер, который содержит эти EditTextView '

0 голосов
/ 03 марта 2019

Вы можете создать метод, который будет возвращать значение типа int.

 private int extractInt(EditText editText) {
        return editText.getText().toString().isEmpty() ? 0 : Integer.parseInt(editText.getText().toString());
    }

В котором говорится, проверять, является ли текст редактирования пустым, возвращать 0 или возвращать целочисленное значение.

Использовать созданный метод везде, где вам нужно.ит.

int Total = extractInt(youreditText1) + extractInt(youreditText2) + extractInt(youreditText3) + extractInt(youreditText4);
0 голосов
/ 03 марта 2019

Полагаю, вы должны взять каждый editText и проверить, является ли он пустым ->

int count = 0;
   if(!editTextFirst.getText.toString().equals("")){
     count += Integer.parse(editTextFirst.getText.toString());
   }
   else if(// next editText){
   }

с делением и умножением, измените количество от 0 до 1. Извините, если есть какая-то ошибка в синтаксисе Java.

...