0

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

我这样写答案:

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

这是在 OnClickListenter 中。问题是我必须与我在项目开始时定义的双重 ans 沟通,如果我想与双重沟通,我需要他是最终的,但如果他是最终的,我不能在 OnClickListener 中改变他.

谁能帮助我并告诉我该怎么做?谢谢。

4

3 回答 3

3

使用通常的技巧:而不是double ans = 0声明final double[] ans = {0},然后您将能够ans[0] += ...在处理程序代码中使用。

于 2012-06-29T12:43:25.163 回答
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);
        }
    });
}

}

于 2012-10-13T07:12:27.223 回答
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());
        }
    });
}
}
于 2012-10-13T07:17:00.157 回答