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

更改 android studio 中的 textview 样式

Android Studio - EditText 输入移动 TextView