2015-01-01 2 views
0

Я подаю точность 3digits после десятичной системы счисления в строку, которая содержит значение с плавающей точкой и установить его на EditText раз другой EditText доступприменение точности 3digits после десятичной нанизывать получения Runtime Exception

final float f = Float.valueOf(eproductprice.getText().toString()); 
ebuilding.setOnFocusChangeListener(new OnFocusChangeListener() { 

    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     // TODO Auto-generated method stub 
     if(!hasFocus) 
     { 
      //Log.e("Float","Message"+f); 
      String productprice=String.format("%.3f", f); 
      eproductprice.setText(productprice); 
     } 
    } 
}); 

Здесь eproductprice я хочу чтобы установить входной формат с плавающей точкой и ebuilding является следующим edittext

Я получил эту ошибку:

java.lang.RuntimeException: Unable to start activity  
ComponentInfo{com.omega.waselapp/com.omega.waselapp.Pickupdetails_activity}: 
java.lang.NumberFormatException: Invalid float: "" 

ответ

0

использование eproductprice.getText(). внутри onFocusChange, чтобы получить значение из EditText:

@Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      // TODO Auto-generated method stub 
       if(!hasFocus) 
       {  
        // get value here from EditText 
       float f = Float.valueOf(eproductprice.getText().toString()); 
       String productprice=String.format("%.3f", f); 
       eproductprice.setText(productprice); 
     } 
    } 

И перед вызовом String.format убедитесь, что строка не Emty, чтобы избежать NumberFormatException или обрабатывать NumberFormatException с помощью try-catch

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