2014-02-10 2 views
0

이 코드의 잘못된 점은 무엇입니까? NumberFormatException 있어요. 잘못된 int : "" 모든 것이 올바르게 보이지만 정확하게 내 EditText를하고 있는지 잘 모르겠습니다. 어떤 도움도 환영합니다.숫자 형식 예외

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

다음 오류가 NullPointerExcept 인 모든 int 변수에 주석을 달았습니다 .. 여기에 무슨 일이 일어나고 있는지 모르겠다. – 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

@ user2061352, 업데이트 된 답변을 확인하십시오. – user3291365

+0

'Integer.parseInt()'와'Integer.valueOf()'사이에 차이점이 없습니다 ... Integer.valueOf() 내부적으로 Integer.parseInt()를 사용합니다 ... –