Исключение формата номера Android с использованием EditText - PullRequest
0 голосов
/ 27 февраля 2011

У меня есть простой процесс

Проще говоря, пользователь вводит число в EditText, выбирает переключатель и затем нажимает кнопку вычисления. Радиокнопки подключены к операторам if, которые, в свою очередь, обращаются к плавающим значениям, которые возвращаются, заменяя число, указанное в EditText. Тем не менее, похоже, что если нажать кнопку «Рассчитать» до того, как будут введены какие-либо числа, возникает исключение в формате чисел, вызывающее сбой приложения.

Пока я введу значение по умолчанию в EditText, чтобы уменьшить шансы на это, но мне было интересно, есть ли способ избежать исключения все вместе, используя что-то вроде оператора if или что-то подобное

вот пример кода

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;

import com.admob.android.ads.AdManager;
import com.admob.android.ads.AdView;
import com.medialets.android.analytics.MMAnalyticsManager;

public class Area extends Activity {
    private EditText text9;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.area);
            text9 = (EditText)findViewById(R.id.EditText09);

    public void myClickHandler09(View view){
switch (view.getId()) {
case R.id.Button09:
    RadioButton SeveralRadioButtons = (RadioButton) findViewById (R.id.RadioButton901);
    float inputValue = Float.parseFloat(text9.getText().toString());
    String checkValue = String.valueOf(inputValue);

    if (checkValue.equals("")){
        text9.setText(String.valueOf(""));
   } else {

     if (SeveralRadioButtons.isChecked())  {
            text9.setText(String
                    .valueOf(conversionfactor(inputValue)));
   }
       break;
}}}

private double conversionfactor(float f){
        return f * 6.4516;
    }

Где (SeveralRadioButtons) называется, на самом деле есть несколько переключателей и оператор if и private double для каждого соответственно

Как вы можете видеть, я уже предпринял попытку исправить проблему, но исключение числового формата все еще появляется.

Ответы [ 3 ]

0 голосов
/ 27 февраля 2011

В onClickListener вашей кнопки вы можете написать оператор if, который проверяет, является ли строка нулевой или "" перед фактической отправкой номера туда, куда вы ее отправляете ...

0 голосов
/ 27 февраля 2011

Наряду с другими рекомендациями по проверке значений null и "" вы также можете перехватить NumberFormatException и обработать ошибку. Вы можете прервать вычисления и, возможно, показать сообщение об ошибке.

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

0 голосов
/ 27 февраля 2011

поместите оператор if вокруг вашей конверсии, проверяя наличие нулевой (первой!) Или пустой строки.Значение по умолчанию работает, пока люди не поместят пустую строку в текстовое поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...