2013-06-10 3 views
-3

Мне нужен входной текст в тексте редактирования, который я могу ввести дробное число следующим образом: 2/4 (я хочу напечатать «/»). Программа посвящена вычислению вещей, и мне нужно ввести дробное значение десятичной дроби. Благодарю. Извините, мой плохой английский.Использование фракций на android editText

+0

Есть путь вокруг, но пожалуйста, ваш вопрос немного более ясно. Вы хотите включить пользователя, ввести номера таким образом? Или вы хотите показать его после вычисления? –

+0

Возможный дубликат [Как преобразовать поплавки в читаемые человеком фракции?] (Http://stackoverflow.com/questions/95727/how-to-convert-floats-to-human-readable-fractions) – Simon

+0

Я хочу, чтобы два пути. Я ввожу дробь, а выход - это дробь. –

ответ

0

Я думаю, что лучший способ - использовать строку для ввода текста, а затем проанализировать строку, чтобы выяснить, какие вещи пользователь вводил.

Когда пользователь закончил свой вклад, вы можете проверить строку с чем-то вроде этого:

public float testInputString(String testString) { 
    boolean goodInput = true; 
    float result = 0; 
    if (testString.contains("/")) { 
     //possible division 
     String pieces[] = testString.split("/"); 
     if (pieces.length != 2) { 
      goodInput = false; 
     } else { 
      try { 
       float numerator = Float.parseFloat(pieces[0]); 
       float denominator = Float.parseFloat(pieces[1]); 
       result = numerator/denominator; 
      } catch (Exception e) { 
       goodInput = false; 
      } 
     } 
    } else if (testString.contains(".")) { 
     try { 
      result = Float.parseFloat(testString);     
     } catch (Exception e) { 
      goodInput = false; 
     } 
    } 

    //TODO something here if bad input, maybe an alert or something 
    return result; 
} 

Кроме того, вы можете проверить, в то время как они печатают на правильный ввод, если вы используете keylistener like this. Вы можете изменить это, чтобы разрешить только числа. а также /.

-1

поместить это свойство в XML-узле EditText и использовать двойное обозначение вместо «/»

android:digits="1234567890.-" 
+0

он хочет быть в состоянии представлять фракции – muued

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