EditText 空指针问题
今天在Android中碰到了這樣一個(gè)問題,其實(shí)應(yīng)該很少人會(huì)碰到,因?yàn)橹挥邢裎疫@種奇葩才會(huì)犯這種錯(cuò)誤。
但既然解決了,我就想在這里跟大家分享一下,畢竟它困擾了我一個(gè)白天啊。。。不多說了,看下面。。。
其實(shí)問題很簡(jiǎn)單,就是Caused By : java.lang.NullPointerException.
上面就是我在用EditText 的時(shí)候它給我提示的錯(cuò)誤類型。
為了簡(jiǎn)便,截取了部分代碼如下,這就是問題的根源所在。
super.onCreate(savedInstanceState);
final EditText et = (EditText)findViewById(R.id.editTextId);
String str = et.getText().toString().trim();
setContentView(R.layout.main);
咋一看,沒什么不對(duì)啊。就是因?yàn)槲沂切率?#xff0c;所以沒看出端倪來。然后拼命的報(bào)錯(cuò),拼命的上網(wǎng)查。
而網(wǎng)上卻沒有這個(gè)情況。。。
ADT Log 里面顯示的出錯(cuò)位置就是String str = et.getText().toString().trim();這一行。
可它真的沒什么不對(duì)啊,如果此時(shí)你呵呵了。那么你已經(jīng)看出來了。
對(duì),就是setContentView(R.layout.main);這句話位置放錯(cuò)了,它應(yīng)該放在引用的資源文件的前面,在這里也就是
final EditText et = (EditText)findViewById(R.id.editTextId);這句話的前面。因?yàn)镽.id.editTextId這個(gè)Id
引用到了R.layout.main這個(gè)Xml文件里面的對(duì)EditText的定義<EditText android:id="@+id/editTextId"
而在final EditText et = (EditText)findViewById(R.id.editTextId)句話之前我們并沒有把R.layout.main這個(gè)Xml
文件放到我們的Context中來。我們可以觀察一下findViewById()方法,會(huì)發(fā)現(xiàn)原來此方法中的R.id.editTextId是從當(dāng)前
Activity的主布局文件xml中獲取。而R.layout.main一定要先于findViewById(R.id.editTextId)在程序中聲明。
那么這樣改就對(duì)了:
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final EditText et = (EditText)findViewById(R.id.editTextId);
String str = et.getText().toString().trim();
這是本人犯的低價(jià)錯(cuò)誤,對(duì)于大神沒有什么參考價(jià)值,但我確確實(shí)實(shí)被它耍了一回,所以有必要在這里分享一下。
轉(zhuǎn)載于:https://www.cnblogs.com/beyondckw/p/3959662.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的EditText 空指针问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 逐步优化求解最大子序列和
- 下一篇: 明天要中秋节了,先来到简单“类”的题目