Как сделать мою кнопку «Рассчитать» избыточной? - PullRequest
0 голосов
/ 14 ноября 2010

У меня есть простое приложение для Android, которое выполняет математические вычисления на 2 числах, которые вводит пользователь, и возвращает результат. В настоящее время у меня есть кнопка «Рассчитать», которую нужно нажать, чтобы выполнить математические вычисления и вернуть значение.

Как я могу избавиться от этой кнопки и просто заставить приложение запускать математику после того, как использование изменило одно из двух чисел?

Большое спасибо.

Ответы [ 4 ]

2 голосов
/ 14 ноября 2010

Предполагая, что вы используете EditText-s для ввода (поскольку они могут быть SeekBar-s, кто знает), добавьте к каждому из них TextWatcher с этим и после каждого изменения одного они обновляют результат

0 голосов
/ 16 ноября 2010

Я использовал нечто подобное для поля EditText, которое я хотел автоматически обновлять после изменения некоторых других полей EditText:

    myEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_DONE)
            {
                calculateNewValue();   // Updates internal variables

                // This part will hide the keyboard after input
                InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
                return true;
            }
            return false;
        }
    });

Это также скрывает клавиатуру, когда вы закончите ( благодаря небольшой помощи ).

CalculateNewValue () обновил поле следующим образом:

private void calculateNewValue()
{
    val = YourFormula()

    myEditText.setText(String.format(yourFormat, val))
}
0 голосов
/ 14 ноября 2010

Что ж, если оба числа начинаются с 0, вы можете либо проверить, чтобы убедиться, что нет, либо 0, или вызвать математическое вычисление, когда оба текстовых поля получили события изменения текста.Я не уверен, какую платформу вы используете, поэтому не могу дать вам больше информации.

0 голосов
/ 14 ноября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...