[英]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.