2010-11-13 36 views
0

我有一個簡單的Android應用程序,它對用戶輸入的2個數字進行一些數學運算並返回結果。 目前我有一個'計算'按鈕,需要按下來做數學和返回值。如何讓我的計算按鈕變得冗餘?

我怎樣才能擺脫這個按鈕,只是讓應用程序在用戶更改2個數字之一後運行數學?

非常感謝。

+1

哪種編程語言是您使用? – 2010-11-13 22:04:09

+1

將它包裹在評論中說'抱歉,但我們必須讓你離開'。 – 2010-11-13 22:08:24

+0

對不起,它是Android – Entropy1024 2010-11-13 22:15:46

回答

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

感謝您的幫助。我可以看看它是如何工作的。但是,我收到以下錯誤: TextView類型中的setOnEditorActionListener(TextView.OnEditorActionListener)方法不適用於參數(new OnEditorActionListener(){}) 這是什麼意思?乾杯。 – Entropy1024 2010-11-17 15:55:48

+0

我自己對Android有點新,所以我不確定。您是否在輸入參數TextView.OnEditorActionListener(){})中包含了TextView? – 2010-11-18 03:52:46

+0

我基本上覆制了上面的代碼,並改變了myEditText以匹配我的EditText。在我的程序中沒有任何一點使用TextView,因此我不確定是否所有的TextView部件都應該是EditViews?困惑。 – Entropy1024 2010-11-18 15:18:27

0

細節取決於您使用的是哪種語言,但基本上只要運行計算函數,只要其中一個數字發生更改。應該有一種方法來覆蓋當任一文本框中的數據發生更改時調用的函數。

0

那麼,如果兩個數字都以0開頭,則可以選擇兩者都不爲0或在兩個文本字段都接收到文本更改事件時觸發數學運算。我不確定你使用的是哪個平臺,所以我不能給你更多的信息。

+0

對不起,它是Android。這兩個值的確從0開始,但是所有的改變都是用戶改變它們的,一次又一次;) – Entropy1024 2010-11-13 22:15:30

+0

所以讓我弄清楚這一點。如果我更改了這兩個數字,應用程序應顯示總數。如果我稍後更改一個號碼,則會顯示新的總數。如果是這樣,只需檢查文本更改的事件。 – DMan 2010-11-13 23:55:42

2

假設你正在使用的EditText-S的輸入(因爲他們可能是搜索欄-S,誰知道),加上他們TextWatcher with this中的每一個,其中一人的每次更改後刷新結果