2010-11-13 3 views
0

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

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

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

+1

Какой язык программирования вы используете? –

+1

Оберните это в комментарии, в котором говорится: «Извините, но мы собираемся вас отпустить». –

+0

Извините, это Android – Entropy1024

ответ

0

я использовал что-то вроде этого для поля 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; 
     } 
    }); 

Это также скрывает клавиатуру, когда вы сделали (thanks to a bit of help).

calculateNewValue() обновляется поле, как это:

private void calculateNewValue() 
{ 
    val = YourFormula() 

    myEditText.setText(String.format(yourFormat, val)) 
} 
+0

Спасибо за помощь. Я могу разобраться, как это работает. Однако я получаю следующую ошибку: Метод setOnEditorActionListener (TextView.OnEditorActionListener) в типе TextView не применим для аргументов (новый OnEditorActionListener() {}) Что это значит? Приветствия. – Entropy1024

+0

Я немного новичок в Android, поэтому не уверен. Включили ли вы TextView во входной аргумент TextView.OnEditorActionListener() {})? –

+0

I basicaly скопировал код выше и изменил myEditText в соответствии с моим EditText. Ни в какой момент в моей программе я не использую TextView, поэтому я не уверен, что все части TextView должны быть EditViews? Смущенный. – Entropy1024

0

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

0

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

+0

Извините, это Android. И значения 2 начинаются с 0, но все меняется, когда пользователь меняет их снова и снова;) – Entropy1024

+0

Так что позвольте мне понять это прямо. Если я изменил оба числа, приложение должно отобразить общее количество. Если я изменю один номер позже, я покажу новое общее количество. Если это так, просто проверьте события с измененным текстом. – DMan

2

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

Смежные вопросы