2011-05-18 40 views
0

誰能告訴我什麼不對的:這些簡單的Android系統有什麼問題?

package applicationTest.ppr.com; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class MainClass extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState); 
     TextView tv = (TextView)findViewById(R.id.text); 
     tv.setText("Merdas para teste"); 
     setContentView(R.layout.main); 

    } 
} 

我的main.xml和Android清單都不錯。該應用程序崩潰時,我添加了textview的東西,並改變了我的main.xml中指定的默認文本。如果我刪除此,應用程序的工作原理..但我想不出爲什麼...

感謝一大堆!

回答

1

您需要撥打setContentView之前致電findViewById

SetContentView就是建立意見,並將其附加到窗口。由於您的電話是相反的,因此findViewById可能會返回null,從而導致setText調用拋出NPE。

+0

你好,我看了你的答案爲止。大聲笑。但是,這是有道理的; D 謝謝你們倆! – Fred 2011-05-18 21:32:54

+0

不用擔心:)很高興你能回答你的問題! – 2011-05-18 21:50:03

2

你之前應該得到任何視圖,設置你的活動 的內容,所以試試這個:

@Override 
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    TextView tv = (TextView)findViewById(R.id.text); 
    tv.setText("Merdas para teste"); 


} 
+0

笑..它是那麼簡單...... -.-」 我的邏輯是更改值後顯示的東西;) 明顯的setContentView確實比這更 謝謝。!) – Fred 2011-05-18 21:30:39

+0

我想知道誰願意以最快的速度,你已經贏得了 - +1從我:) – Lumis 2011-05-18 21:31:59

+0

歡迎您弗雷德,很高興幫助;) 注意:您要設置的內容首先,在你的代碼中的問題,是你試圖讓一個視圖( TextView中)之前ü沒有設置你的活動的內容,所以它會返回NULL;) – Houcine 2011-05-18 21:32:50