2013-05-27 33 views
0

對不起,問一個奇怪的問題,我在新的java,我會做一個Android應用程序,它可以使從C = A + B 計數,但它總是返回NullPointerException異常總是空指針異常

這裏我的代碼

public class Kreasi extends Activity { 

    // Inisialisasi 
    private EditText e1; 
    private EditText e2; 

    private Spinner s1; 

    private Button b1; 
    private Button b2; 

    private TextView t1; 
    private TextView t2; 
    private TextView t3; 
    private TextView t4; 
    private TextView t5; 

    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.kreasi); 

     // INISIALISASI VARIABEL 
     e1 = (EditText)findViewById(R.id.isiharga); 
     e1 = (EditText)findViewById(R.id.isilaba); 

     s1 = (Spinner)findViewById(R.id.spin); 

     b1 = (Button)findViewById(R.id.process); 
     b2 = (Button)findViewById(R.id.reset); 

     t1 = (TextView)findViewById(R.id.hMax); 
     t2 = (TextView)findViewById(R.id.angPokok); 
     t3 = (TextView)findViewById(R.id.angSewa); 
     t4 = (TextView)findViewById(R.id.angTotal); 

     b1.setOnClickListener(new OnClickListener(){ 
      int a,b; 
      @Override 
      public void onClick(View v) { 

       hideSoftKeyboard(b1); 

       String aa,bb; 

       aa = e1.getText().toString(); 
       bb = e2.getText().toString(); 

       a = Integer.valueOf(aa); 
       b = Integer.valueOf(bb); 

       int c = (int) (a + b); 
       t1.setText(Integer.toString(c)); 

      } 

     }); 

    } 

    // Menyembunyikan Keyboard 
    public void hideSoftKeyboard(Button btn) { 
     btn.setInputType(0); 
     InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(btn.getWindowToken(), 0); 
    } 

    /* 
    // Fungsi saat tombol process ditekan 
    public void tombolprocess(){ 

     b1.setOnClickListener(new OnClickListener(){ 

      @Override 
      public void onClick(View v) { 

       hideSoftKeyboard(b1); 

       aa = e1.getText().toString(); 
       bb = e2.getText().toString(); 

       Toast.makeText(getBaseContext(),"a="+aa +" b=" +bb,Toast.LENGTH_SHORT).show(); 

      } 

     }); 

    } 
    */ 
} 

感謝您的任何意見

+3

*,其中*是NPE發生? – Makoto

回答

5

這是因爲你沒有爲e2傳遞價值。

簡單的改變:

e1 = (EditText)findViewById(R.id.isiharga); 
e1 = (EditText)findViewById(R.id.isilaba); 

e1 = (EditText)findViewById(R.id.isiharga); 
e2 = (EditText)findViewById(R.id.isilaba); 
+2

這就是爲什麼我們不只是命名變量'var1','var2',...,'varN'。 – Eric

+0

是的就是這樣:D,我忘記重命名 – Wisnuardi

3

你已經設置e1兩次,你需要設置e2也一樣,所以

e1 = (EditText)findViewById(R.id.isiharga); 
e2 = (EditText)findViewById(R.id.isilaba); 
+0

感謝您的幫助 – Wisnuardi

+0

@Wisnuardi沒問題 – Jim