我是初学者,我正在尝试构建一个计算器。 我有一个问题。
我写这样的答案:
ans += Double.parseDouble(etResult.getText().toString());
outTest.setText("The answer is " + ans);
这是在OnClickListenter中。 问题是我必须与我在项目开始时定义的双重ans进行通信,如果我想与双重通信,我需要他最终,但如果他是最终的,我无法在OnClickListener中更改他
任何人都可以帮助我并告诉我该怎么做?感谢。
答案 0 :(得分:3)
使用通常的技巧:而不是double ans = 0
声明final double[] ans = {0}
,然后您就可以在处理程序代码中使用ans[0] += ...
。
答案 1 :(得分:0)
您可以按如下方式编写代码
public class TestActivity extends Activity {
/** Called when the activity is first created. */
Double dbl;
Button btn;
EditText et;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.button1);
et = (EditText) findViewById(R.id.editText1);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
dbl = Double.parseDouble(et.getText().toString());
Log.e("double", "" + dbl);
}
});
}
}
答案 2 :(得分:0)
试试吧
public class TestActivity extends Activity {
/** Called when the activity is first created. */
Double dbl;
Button btn;
EditText et1, et2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.button1);
et1 = (EditText) findViewById(R.id.editText1);
et2 = (EditText) findViewById(R.id.editText2);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
dbl = Double.parseDouble(et1.getText().toString());
et2.setText(dbl.toString());
}
});
}
}