2016-08-26 2 views
1

У меня проблема с TextView, отображающим буквы вместо цифр.Android Studio 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

Проблема заключается в том, что вы используете метод Double.toString() для вывода значения double, которое использует формат scientific notation.

Если вы хотите, чтобы отобразить обычный номер, который вы можете использовать вместо String.format():

showText.setText(String.format("%.0f", formule)); 

В случае, если вы хотите, чтобы показать десятичные можно использовать, например, %.2f для двух десятичных знаков вместо %.0f.

Смежные вопросы