这些简单的android线有什么问题?

时间:2011-05-18 21:21:51

标签: 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中指定的默认文本。如果我删除它,应用程序工作..但我无法弄清楚为什么...

非常感谢!

2 个答案:

答案 0 :(得分: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");


} 

答案 1 :(得分:1)

您需要在致电setContentView之前致电findViewById

SetContentView是构建视图并将其附加到窗口的内容。由于您的调用被反转,findViewById可能返回null,导致setText调用抛出NPE。