天天看點

關于Android setOnclicklistener抛出空指針的問題

廢話不多說了 

相信遇到這個問題的人都明白我在說什麼

今天被這個問題坑了好久 弄了一個下午才發現原來是一個小小的錯誤造成的

貼出來供大家借鑒

saveButton=(Button)this.findViewById(R.id.smallbutton);

saveButton.setOnClickListener(this);

錯誤出現在這兩行代碼

當我注釋掉下面一行代碼時

程式還可運作

當時當執行下面一行代碼時

程式就會抛出空指針錯誤了

最後找到的原因是什麼呢

我的saveButton是在一個main.xml中定義的

而我發現我之前改動了一點東西

我在

saveButton=(Button)this.findViewById(R.id.smallbutton);

saveButton.setOnClickListener(this);

這兩行代碼之後 我才執行

setContentView(R.layout.main);

程式出錯了

後來我把setContentView(R.layout.main);寫在

saveButton=(Button)this.findViewById(R.id.smallbutton);

saveButton.setOnClickListener(this);

前面 

噢噢~~問題解決了~程式又沒問題了

我的了解是這樣的

雖然在R檔案中已經有saveButton的id

但是要找到這個button

還是要先找到main.xml 

然後才知道main.xml中定義了saveButton

雖然這麼想但是我也覺得很奇怪  (明明R檔案中已經有這個id的 為什麼會找不到)

不知道其他人有沒有什麼見解?