4

私は Android プログラミングの初心者で、3 つの editText フィールドを持つ単純な電卓を作成しようとしています。そのうちの 2 つは入力として使用され、3 番目は出力結果として使用されます。「+」ボタンをクリックすると、2つの数値の合計が出力されると思います。しかし、たとえば 2+3 = 2.131230724E9 のような奇妙な数字が返されます。ネット経由で解決しようとしましたが、その特定の問題を見つけることができませんでした....ありがとう...

final double tf1 = Double.parseDouble(String.valueOf(R.id.editText1));
final double tf2 = Double.parseDouble(String.valueOf(R.id.editText2));


    Button btplus = (Button)findViewById(R.id.button1);


    btplus.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v)
        {
            double tf3;
            tf3 = tf1 + tf2;
            EditText result = (EditText)findViewById(R.id.editText3);
            result.setText(String.valueOf(tf3));
        }
    });
4

5 に答える 5

2

R.id.editText1の int 値を参照していますR.java

で最初に EditText を初期化する必要がありますonCreate。final 修飾子が必要ない場合は、EditText をクラス メンバーとして宣言します。

   final EditText ed1 = (EditText) findViewById(R.id.editText1);
   final EditText ed2 = (EditText) findViewById(R.id.editText1);
   final EditText result = (EditText)findViewById(R.id.editText3);  

それで

    Button btplus = (Button)findViewById(R.id.button1);  
    btplus.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v)
    {
        double tf3;
        double tf1 =Double.parseDouble(ed1.getText().toString());
        double tf2 =Double.parseDouble(ed2.getText().toString());
        tf3 = tf1 + tf2; 
        result.setText(String.valueOf(tf3));
    }
    });
于 2013-07-30T12:41:57.940 に答える
0
final double tf1 = Double.parseDouble(edittext1.getText().toString());
final double tf2 = Double.parseDouble(edittext2.getText().toString());


Button btplus = (Button)findViewById(R.id.button1);


btplus.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v)
    {
        double tf3 = 0;
        tf3 = tf1 + tf2;
        EditText result = (EditText)findViewById(R.id.editText3);
        result.setText(String.valueOf(tf3));
    }
});
于 2013-07-30T12:45:08.900 に答える
0

次のことを試してください。

EditText editText1 = (EditText) findViewById(R.id.editText1);
EditText editText2 = (EditText) findViewById(R.id.editText2);

final double tf1 = Double.parseDouble(editText1.getText().toString());
final double tf2 = Double.parseDouble(editText2.getTExt().toString());

R.id は単なる参照整数であるため、テキスト ボックスの実際の値ではなく、2 つの id 整数を加算すると奇数になります。

于 2013-07-30T12:43:17.073 に答える