Member 13818240 Ответов: 2

Использование условий меньше , больше и равно в android studio.


У меня есть значение по умолчанию ,отображаемое в текстовом представлении, когда я ввожу число в редактируемый текст, мне нужна проверка, говорящая, что введенное число не должно быть больше или равно ему, какая-нибудь помощь здесь?? До сих пор я использовал >= и >, но это не сработало ......

Что я уже пробовал:

@Override
            public void onClick(View v) {
                if (amt.getText().toString().trim().isEmpty()){
                    Toast.makeText(myView.getContext(), "Enter Valid Amount", Toast.LENGTH_LONG).show();
                    //isValidDecimalNumber(amt);
                }
                else if ( (amt.getText().toString().trim().length() >=  txt1.getText().toString().trim().length())){

                }
                else {
                     tot = Double.parseDouble(amt.getText().toString());
                     tt=(tot / 100.0f) * 3+tot;
                    loadProducts2();
                }

            }

David Crow

Вы не подумали позвонить setFilters() на EditText контроль? Это позволит вам легко контролировать как длину, так и дальность полета.

2 Ответов

Рейтинг:
13

Richard MacCutchan

else if ( (amt.getText().toString().trim().length()   txt1.getText().toString().trim().length())){

Что эти две линии должны делать?

После того, как вы проверили, что в вашем текстовом поле есть какой-то текст, вы должны попытаться преобразовать его. Затем вы можете проверить, что он находится в пределах допустимых значений. Вы также должны обернуть преобразование в блок try/catch, чтобы захватить недопустимые входные данные.

[редактировать]
public void onClick(View v) {
string strAmount = amt.getText().toString().trim();
if (strAmount.isEmpty()){
    Toast.makeText(myView.getContext(), "Enter Valid Amount", Toast.LENGTH_LONG).show();
}
else {
    try {
        tot = Double.parseDouble(strAmount);
        if (tot < 0 || tot > maxAmount) {
            // show invalid number
        }
        tt=(tot / 100.0f) * 3+tot;
        loadProducts2();
    catch (NumberFormatException ne) {
        Toast.makeText(myView.getContext(), strAmount + " is not a valid number", Toast.LENGTH_LONG).show();
    }
}

[/редактировать]


Member 13818240

иначе если ( (АМТ.то gettext().метод toString().отделка().Длина (м) &ГТ;= txt1.то gettext().метод toString().отделка().длина())){

Извините, что это код, который проверяет большее или равное между обоими.

Richard MacCutchan

Да, но это не проверяет, является ли текст допустимым числом или находится ли он в допустимом диапазоне значений. Если txt1-это "347", а amt - "foo", то тест пройдет, но не так, как вы хотите.

Richard MacCutchan

Смотрите мое обновленное решение.

Рейтинг:
11

KarstenK

Вы должны написать более четкий код, например

public void onClick(View v) {
    String text = amt.getText().toString().trim();

    if (text.isEmpty()){
    } else {
        int value = Double.parseDouble(text);
        // deals with value
Это очень помогает в поиске лучшего кода.

Ваше предложение else if выглядит очень странно. Пересмотрите и переосмыслите эти строки кода.


Member 13818240

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

Richard MacCutchan

Смотрите мое обновленное решение выше.