最终变量的范围对OnClickListener不可见

时间:2012-06-29 12:35:52

标签: java

我是初学者,我正在尝试构建一个计算器。 我有一个问题。

我写这样的答案:

ans += Double.parseDouble(etResult.getText().toString());
outTest.setText("The answer is " + ans);

这是在OnClickListenter中。 问题是我必须与我在项目开始时定义的双重ans进行通信,如果我想与双重通信,我需要他最终,但如果他是最终的,我无法在OnClickListener中更改他

任何人都可以帮助我并告诉我该怎么做?感谢。

3 个答案:

答案 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());
        }
    });
}
}