2012-03-30 68 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