2011-05-18 43 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