2015-11-02 2 views
-2

Это мой кодМое приложение, к сожалению, перестал

button.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      try { 
       if (myswitch.isChecked()) { 
        editText.setHint("IDR"); 
        editText1.setHint("USD"); 
        double Rupiah = Double.valueOf(editText.getText().toString()); 


        double convusd = Rupiah/13698; 

        DecimalFormat dformat = new DecimalFormat("####,###,###.00"); 


        editText1.setText(String.format("$" + dformat.format(convusd))); 
       } else { 
        editText.setHint("USD"); 
        editText1.setHint("IDR"); 
        double USD = Double.valueOf(editText.getText().toString()); 


        double convidr = USD * 13698; 
        DecimalFormat dformat = new DecimalFormat("####,###,###.00"); 


        editText1.setText(String.valueOf("Rp." + dformat.format(convidr))); 
       } 


      } catch (IOException e) { 
       System.err.println("Caught IOException: " + e.getMessage()); 
      } 
     } 

    });` 

Мое приложение имеет ошибку, если EditText пуст, когда я нажимаю кнопку.

+0

К сожалению, вы не предоставили достаточно контекста и ваш вопрос слишком широк. Что делает код выше? Какое исключение вы получаете? Укажите, что вы пытаетесь выполнить. –

ответ

0

Вашего код имеет несколько проблем:

  1. Почему вы сервировку после щелчка и в том же случае, вы пытаетесь преобразовать значения ? не следует ли сначала видеть подсказку, вводить значения и только тогда вы конвертируете вход?

  2. При попытке преобразовать входной сигнал, вы должны проверить, есть ли на самом деле значение внутри, например:

    String inputVal = editText.getText();  
    
    if(inputVal != null && !inputVal.isEmpty()) 
    { 
        //do some stuff 
    } 
    
  3. Если есть значение, убедитесь, что это то, что вы ожидаете, что это будет. Установите тип входа в ваш EditText:

    android:inputType="numberDecimal" 
    

    и быть очень уверен, что вы должны сделать Somthing так:

    double d; 
    try { 
        d = Double.parseDouble(inputVal); 
        } 
    catch (NumberFormatException e) { 
        // The input is not what you thought it was, handle it 
    } 
    
+0

Мне нужно попробовать это, но все равно получить ошибку, я alredy поместил этот код 'String a = editText.getText(). ToString(); if (a! = Null &&! A.isEmpty()) { editText.setText (""); } ' –

+0

, но когда значение равно null, возникает ошибка. Затем, когда я ввожу значение в текстовое поле, ваш код работает. я очень смущаюсь, помогите мне :) –

+0

Сделайте что-то вроде этого: String a = editText.getText(). toString(); if (a.matches ("")) { Toast.makeText (это, «Вы не указали имя пользователя», Toast.LENGTH_SHORT) .show(); } еще { // есть вход вы можете делать то, что вам нужно } –

0

Изменить код, как, как показано ниже

 String a=editText.getText().toString();  
     if(a!=null&&!a.isEmpty()) 
     { 
       double Rupiah = Double.valueOf(a); 
     } 
+0

i alredy попробуйте это, но все еще ошибка. спасибо раньше :) –

0

Добавить пустой чек При нажатии на кнопку. Вы, возможно, пытаетесь преобразовать пустую строку в два раз

if(!editText.getText().toString().isEmpty){ 
double Rupiah = Double.valueOf(editText.getText().toString()); 
... 
} 
+0

дайте мне знать, если это поможет. – shreyas

+0

это не работает для меня, но спасибо раньше :) –

0
button.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      try { 
       if (myswitch.isChecked()) { 
        editText.setHint("IDR"); 
        editText1.setHint("USD"); 
        double Rupiah = Double.valueOf(editText.getText() ==null ? "":editText.getText().toString()); 


        double convusd = Rupiah/13698; 

        DecimalFormat dformat = new DecimalFormat("####,###,###.00"); 


        editText1.setText(String.format("$" + dformat.format(convusd))); 
       } else { 
        editText.setHint("USD"); 
        editText1.setHint("IDR"); 
        double USD = Double.valueOf(editText.getText() ==null ? "":editText.getText().toString()); 


        double convidr = USD * 13698; 
        DecimalFormat dformat = new DecimalFormat("####,###,###.00"); 


        editText1.setText(String.valueOf("Rp." + dformat.format(convidr))); 
       } 


      } catch (IOException e) { 
       System.err.println("Caught IOException: " + e.getMessage()); 
      } 
     } 

    });` 
Смежные вопросы