2012-03-30 73 views
0

我想刪除按鈕,並在下面的代碼中自動執行該過程。我環顧四周,但還沒有完全找到我需要的答案。刪除OnClickListener和自動化

public class MainActivity extends Activity { 
EditText Number1; 
EditText Number2; 
Button calc; 
TextView output; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Number1 = (EditText) findViewById(R.id.Number1); 
    Number2 = (EditText) findViewById(R.id.Number2); 
    calc = (Button) findViewById(R.id.calc); 
    output = (TextView) findViewById(R.id.output); 
} 

public void doCalc (View view) { 
    double intNum1 = Double.parseDouble(Number1.getText().toString()); 
    double intNum2 = Double.parseDouble(Number2.getText().toString()); 
    double mOutput = (intNum1*intNum2); 
    output.setText("Output" + mOutput); 
} 

}

我很新到Java已經大多做了一些perl的腳本,所以任何的幫助深表感謝。

+0

自動化如何?當按鈕被按下時,doCalc()獲取數字並打印出他們的總和。那麼,這個打印會在什麼時候自動發生? – 2012-03-30 16:22:56

+0

我想完全刪除按鈕,當Number1和Number2填充doCalc時,不按任何按鈕。 – tim 2012-03-30 16:32:15

+0

然後你必須爲兩個編輯框設置onTextChangedListener(),並在文本改變時進行計算 – 2012-03-30 16:39:57

回答

0

如果你想擺脫這個按鈕,那麼你必須使用TextWatcher來觀看正在改變的文本字段。 事情是這樣的:

 TextWatcher watcher = new TextWatcher() {     
      @Override 
      public void afterTextChanged(Editable s) {       
       double d = Double.parseDouble(Number1.getText()) * Double.parseDouble(Number2.getText()); 
       result.setText(d + ""); 
       } 
      } 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) { } 
      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { } 

     }); 
Number1.addTextChangedListener(watcher); 
Number2.addTextChangedListener(watcher); 

對不起任何錯誤,我主要是複製/粘貼很快,好運氣。

+0

感謝您的回答,這就是我一直在尋找的。 – tim 2012-03-31 22:06:52