Android Studio TextView 将数字显示为字母
Posted
技术标签:
【中文标题】Android Studio TextView 将数字显示为字母【英文标题】:Android Studio TextView showing numbers as letters 【发布时间】:2016-08-26 13:47:19 【问题描述】:我在 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
抱歉英语不好,谢谢!
【问题讨论】:
【参考方案1】:问题是您使用Double.toString()
方法输出您的double
值,该值使用scientific notation 格式。
如果您想显示纯数字,您可以改用String.format()
:
showText.setText(String.format("%.0f", formule));
如果你想显示小数,你可以使用例如%.2f
表示两位小数,而不是 %.0f
。
【讨论】:
以上是关于Android Studio TextView 将数字显示为字母的主要内容,如果未能解决你的问题,请参考以下文章
在 Android Studio 中将 MySQL 中的数据显示到 TextView 中
通过移动设备在 Android Studio 中单击 TextView 会导致应用程序崩溃 [关闭]
无法在 Android Studio 中格式化部分 TextView 或 Button 文本
如何保存我的 TextView Android Studio