2014-02-11 34 views
1

這是我的課。我有個問題。我填寫所有數據正確,當我製作Toast我有NullPointerExeption。我不知道爲什麼。我正在使用EditTexts中的所有輸入。 任何人都可以看到我做錯了什麼?奇怪的建議NullPointerException

public class Wyslij extends Activity { 

    protected final int TIMEOUT_MILLISEC = 30; 
    EditText et_nazwa; 
    EditText et_nip; 
    EditText et_adres; 
    ImageButton ib_wyslij; 


    final TowarZamowienie tz = new TowarZamowienie(); 

    @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(); 
     String adres_firmy = et_adres.getText().toString(); 

     final Zamowienie zam = new Zamowienie(); 

     if (nazwa_firmy != null && !nazwa_firmy.equalsIgnoreCase("")) { 

      zam.klient.setNazwa(et_nazwa.getText().toString()); 
     } 

     if (nip_firmowy != null && !nip_firmowy.equalsIgnoreCase("")) { 

      zam.klient.setNip(et_nip.getText().toString()); 
     } 

     if (adres_firmy != null && !adres_firmy.equalsIgnoreCase("")) { 

      zam.klient.setAdres(et_adres.getText().toString()); 
     } 

     final String suma_zamowienia = podaj_sume(TowarZamowienie.towary_zamowione); 

     zam.setSuma(suma_zamowienia); 

     zam.setZam_id(MainActivity.nr_zamowienia); 

     MainActivity.nr_zamowienia++; 

     tz.setZam_id(zam.getZam_id()); 

     final String[] s = new String[TowarZamowienie.towary_zamowione.size()]; 

     for (int i = 0; i < TowarZamowienie.towary_zamowione.size(); i++) { 

      s[i] = TowarZamowienie.towary_zamowione.get(i).getTows_id(); 
     } 

     ib_wyslij.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       // new 

       Toast.makeText(getApplication(), 
         zam.klient.getNazwa()+ " "+zam.klient.getNip()+" "+zam.klient.getAdres().toString(), Toast.LENGTH_LONG) 
         .show(); 

      } 
     }); 

    } 



    private String podaj_sume(ArrayList<Towar> l) { 
     int suma = 0; 
     for (int i = 0; i < l.size(); i++) { 
      suma += l.get(i).Tow_ilosc * l.get(i).Tow_cena; 
     } 

     return String.valueOf(suma); 
    } 

} 

我logcat的錯誤:

02-11 23:08:59.546:W/dalvikvm(17234):線程ID = 1:螺紋與未捕獲的異常(組= 0x40be71f8)離開 02- 11 23:08:59.554:E/AndroidRuntime(17234):致命例外:主 02-11 23:08:59.554:E/AndroidRuntime(17234):java.lang.NullPointerException 02-11 23:08:59.554: E/AndroidRuntime(17234):at com.example.inzynierka.Wyslij $ 1.onClick(Wyslij.java:110) 02-11 23:08:59.554:E/AndroidRuntime(17234):at android.view.View.performClick (View.java:3558) 02-11 23:08:59.554:E/AndroidRuntime(17234):at android.view.View $ PerformClick.run(View.java:14152) 02-11 23:08:59.554:E/AndroidRuntime(17234) :at android.os.Handler.handleCallback(Handler.java:605) 02-11 23:08:59.554:E/AndroidRuntime(17234):at android.os.Handler.dispatchMessage(Handler.java:92) 02 -11 23:08:59.554:E/AndroidRuntime(17234):at android.os.Looper.loop(Looper.java:137) 02-11 23:08:59.554:E/AndroidRuntime(17234):at android。 app.ActivityThread.main(ActivityThread.java:4514) 02-11 23:08:59.554:E/AndroidRuntime(17234):at java.lang.reflect.Method.invokeNative(Native Method) 02-11 23:08 :59.554:E/AndroidRuntime(17234):at java.lang.reflect.Method.invoke(Method.java:511) 02-11 23:08:59.554:E/AndroidRuntime(17234):at com.android.in (ZygoteInit.java:790) 02-11 23:08:59.554:E/AndroidRuntime(17234):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 557) 02-11 23:08:59.554:E/AndroidRuntime(17234):在dalvik.system.NativeStart.main(本機方法)

Zamowienie.class 公共類Zamowienie {

public int id; 

public int zam_id; 

public String suma; 


public Klient klient; 

public Zamowienie(int id, String suma, Klient klient) { 
    super(); 
    this.zam_id = id; 
    this.suma = suma; 
    this.klient = klient; 
} 
public Zamowienie() { 
    super(); 
} 
public int getId() { 
    return id; 
} 
public int getZam_id() { 
    return zam_id; 
} 
public void setZam_id(int zam_id) { 
    this.zam_id = zam_id; 
} 
public void setId(int id) { 
    this.id = id; 
} 
public String getSuma() { 
    return suma; 
} 
public void setSuma(String suma) { 
    this.suma = suma; 
} 

}

+0

請發佈logcat並指出NPE發生在哪一行。 – Henry

+0

@亨利完成了,還有其他什麼? – user3293650

+0

是的,哪一行是'Wyslij.java:110'? – Henry

回答

1

onCreate()你這樣做:

final Zamowienie zam = new Zamowienie(); 

,然後您嘗試訪問zam.klient

但你永遠不設置zam.klient任何東西,所以它是空的。

+1

瓦瑟先生,你是最好的!非常感謝 ! :d – user3293650

0

嘗試將此置於OnClick中:

Toast.makeText(Wyslij.this, 
         zam.klient.getNazwa()+ " "+zam.klient.getNip()+" "+zam.klient.getAdres().toString(), Toast.LENGTH_LONG) 
         .show(); 
+0

仍空指針異常 – user3293650

0

您在引用Zamownienieklient變量。該變量未設置。您正在調用Zamownienie的無參數構造函數,這意味着klient設置爲null

請考慮使用標準的Java命名約定以及不給類變量public作用域。

HTH

相關問題