我遇到TextView显示字母而不是数字的问题。
我正在尝试制作转换器应用。
这是我的代码:
package com.rickhuisman.converter;
import android.icu.text.DecimalFormat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import org.w3c.dom.Text;
public class LengthActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_length);
}
public void onClickConvertLength(View view) {
// variables
Spinner spinner1 = (Spinner)findViewById(R.id.spinner1Length);
Spinner spinner2 = (Spinner)findViewById(R.id.spinner2Length);
Button button = (Button)findViewById(R.id.convertButtonLength);
// spinner 1
String spinner1Value = String.valueOf(spinner1.getSelectedItem());
// spinner 2
String spinner2Value = String.valueOf(spinner2.getSelectedItem());
EditText inputChecker = (EditText)findViewById(R.id.InputLength);
TextView showText = (TextView)findViewById(R.id.showTextLength);
String inputCheckerText = inputChecker.getText().toString();
EditText input = (EditText)findViewById(R.id.InputLength);
// If input == 0
if(inputCheckerText.equals("")) {
inputCheckerLength();
}
// Millimeters && Millimeters
else if(spinner1Value.equals("Millimeters") && spinner2Value.equals("Millimeters")) {
// Get the input
Double formule = new Double(input.getText().toString());
methodLength(formule);
}
// Millimeters && Centimeters
else if(spinner1Value.equals("Millimeters") && spinner2Value.equals("Centimeters")) {
// Get the input
Double formule = new Double(input.getText().toString());
methodLength(formule);
}
}
// If the input == 0
public void inputCheckerLength() {
TextView showText = (TextView)findViewById(R.id.showTextLength);
CharSequence toastText = "Nothing to convert!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(this, toastText, duration);
toast.show();
}
// The method
public void methodLength(double formule) {
TextView showText = (TextView)findViewById(R.id.showTextLength);
showText.setText(Double.valueOf(formule).toString());
}
}
代码图片:Code
问题是,如果我在EditText中添加了很多数字,TextView会显示字母,有没有办法让TextView显示整数而不是字母?
问题图片:Image
抱歉英文不好,谢谢!
答案 0 :(得分:0)
问题是您使用Double.toString()
方法输出double
值,该值使用scientific notation格式。
如果您想显示普通数字,可以改为使用String.format()
:
showText.setText(String.format("%.0f", formule));
如果您想显示小数,可以使用例如%.2f
表示两位小数,而不是%.0f
。