簡體   English   中英

為什么我的editText沒有在android中顯示正確的輸出?

[英]why does my editText doesn't presents the right output in android?

我是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));
        }
    });

問題出在您的代碼中:

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

您沒有獲取EditText的值,而是獲取對象的引用。 您需要更改此類似的內容

final double tf1 = Double.parseDouble(((EditText)findViewById(R.id.editText1)).getText().toString());
final double tf2 = Double.parseDouble(((EditText)findViewById(R.id.editText2)).getText().toString());

此外,您應該在按鈕的OnClick方法中包含這些行,因此當您單擊按鈕時它將獲取當前值。

R.id.editText1指的是R.java int值。

您需要先在onCreate初始化EditText。 如果您不希望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));
    }
    });

而不是這個:

result.setText(String.valueOf(tf3));

用這個 :

result.setText("" + tf3);

請嘗試以下方法:

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只是一個引用整數,這就是為什么在將兩個id整數加在一起時得到奇數,而不是文本框中的實際值。

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));
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM