0

私は初心者です。電卓を作ろうとしています。私は問題があります。

私はこのように答えを書きます:

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

これはOnClickListenterにあります。問題は、プロジェクトの最初に定義したdouble ansと通信する必要があることです。doubleと通信する場合は、彼をファイナルにする必要がありますが、彼がファイナルの場合は、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 に答える