2012-01-25 123 views
-1
public class Database extends Activity { 

private TextView tvInfo = (TextView)findViewById(R.id.tvInfo); 
private Button btnInfo = (Button)findViewById(R.id.btnInfo); 

大家好,可能這只是java中的一個新手錯誤,但爲什麼這會拋出一個NPE?我只是宣佈這些變量,它給了我一個NPE。Android java NullPointerException

+0

NPE在哪一行?! –

+0

解決了,謝謝! – silentw

回答

1

你需要編寫類似下面

private TextView tvInfo = null; 
private Button btnInfo = null; 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.configuration); 
      tvInfo = (TextView)findViewById(R.id.tvInfo); 
      btnInfo = (Button)findViewById(R.id.btnInfo); 
      ........ 
    } 

嘗試上述情況下,你不會得到NullPointerException

+0

是的,這就是我所做的。非常感謝您的快速解答! – silentw

+1

你應該接受答案,以便它對你和其他人都有用。 – Lucifer

0

您是否預先調用了setContentView(R.layout.main)? 我不太確定究竟究竟需要調用什麼,但似乎您的資源可能未被設置。

+0

謝謝,那是我的問題,現在我明白了,以前沒有Java經驗! – silentw

+0

標記你的問題,以防止更多的答案解決問題; – sschrass

0

你應該調用的setContentView

+0

謝謝,那是我的問題!愚蠢的新手錯誤:) – silentw

+0

你的歡迎。請記住接受您認爲有用的答案。回答得分(10)和你一樣(2) – nwaltham

+0

還剩6分鐘:p – silentw

1

你不能找到一個視圖,除非它是可用後初始化裏面的onCreate()的變量。這就是爲什麼你如下應該將你的代碼:

private TextView tvInfo; 
private Button btnInfo; 

的onCreate方法裏,你這樣做:

tvInfo = (TextView)findViewById(R.id.tvInfo); 
btnInfo = (Button)findViewById(R.id.btnInfo); 
+0

已解決,謝謝! – silentw

0

覆蓋的onCreate活動的方法和通過的setContentView然後設置活動的佈局嘗試找到TextView和Button。