2014-02-10 3 views
0

Что не так с этим кодом? У меня есть NumberFormatException. Invalid int: "" Все выглядит правильно, но я не знаю, правильно ли я делаю EditTexts. Любая помощь приветствуется.Исключение номера формата

public class Wyslij extends Activity { 

    EditText et_nazwa; 
    EditText et_nip; 
    EditText et_adres; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.wyslij); 

     et_nazwa = (EditText) findViewById(R.id.et_nazwa); 
     et_nip = (EditText) findViewById(R.id.et_nip);    
     et_adres = (EditText) findViewById(R.id.et_adres); 
     ib_wyslij = (ImageButton) findViewById(R.id.ib_wyslij); 

     String nazwa_firmy = et_nazwa.getText().toString(); 

     String nip_firmowy = et_nip.getText().toString(); 
     int nip_firmy = Integer.valueOf(nip_firmowy); 

     String adres_firmy = et_adres.getText().toString(); 

     final Zamowienie zam = new Zamowienie(); 

     zam.klient.nazwa = nazwa_firmy; 
     zam.klient.nip = nip_firmy; 
     zam.klient.adres = adres_firmy; 

     String suma_zamowienia = podaj_sume(TowarZamowienie.towary_zamowione); 
     int suma_zam = Integer.valueOf(suma_zamowienia); 
     zam.suma=suma_zam; 
    } 
} 

ответ

1
public class Wyslij extends Activity { 

     EditText et_nazwa; 
     EditText et_nip; 
     EditText et_adres; 
    int suma_zam; 
    int nip_firmy; 


     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      // TODO Auto-generated method stub 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.wyslij); 

      et_nazwa = (EditText) findViewById(R.id.et_nazwa); 
      et_nip = (EditText) findViewById(R.id.et_nip);    
      et_adres = (EditText) findViewById(R.id.et_adres); 
      ib_wyslij = (ImageButton) findViewById(R.id.ib_wyslij); 

      String nazwa_firmy = et_nazwa.getText().toString(); 
      String nip_firmowy = et_nip.getText().toString(); 
    if(nip_firmowy != null && !nip_firmowy.equalsIgnoreCase(""){ 
      nip_firmy = Integer.parseInt(nip_firmowy); 
      String adres_firmy = et_adres.getText().toString(); 

      final Zamowienie zam = new Zamowienie(); 

      zam.klient.nazwa = nazwa_firmy; 
if(nip_firmy != null){ 
      zam.klient.nip = nip_firmy; 
} 
if(adres_firmy != null){ 
      zam.klient.adres = adres_firmy; 
    } 
     } 


      String suma_zamowienia = podaj_sume(TowarZamowienie.towary_zamowione); 
      if(suma_zamowienia != null && !suma_zamowienia.equalsIgnoreCase(""){ 

      suma_zam = Integer.parseInt(suma_zamowienia); 
       zam.suma=suma_zam;} 


     } 
    } 
+0

не работает :(| – user2061352

+0

Я отредактировал код, проверяя, что вы разобираете два раза, поэтому добавьте туда защитника. –

+0

Когда я прокомментировал все переменные int, следующая ошибка была NullPointerExcept .. Я не знаю, что здесь происходит. – user2061352

0

Я считаю, что есть свободное пространство, когда вы извлекаете значение из EditText. Поэтому, прежде чем преобразовать строковое значение в целое необходимо обрезать белое пространство, как показано ниже,

String nip_firmowy = et_nip.getText().toString().trim(); // use trim here 
int nip_firmy = Integer.parseInt(nip_firmowy); // use parseInt() method 
+0

вы могли бы дать мне пример? – user2061352

+0

@ пользователь2061352, пожалуйста проверив обновленный ответ. – user3291365

+0

Нет никакой разницы между 'Integer.parseInt()' и 'Integer.valueOf()' ... 'Integer.valueOf()' внутренне использует 'Integer.parseInt()' ... –

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