Android 安卓:应用程序正在崩溃

Android 安卓:应用程序正在崩溃,android,Android,这是我的代码: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView editTextDay = (TextView)findViewById(R.id.editTextDay); editTextDay.setVisibility(8); //GONE setContentView(R.layout.main); } 如果没有“

这是我的代码:

public void onCreate(Bundle savedInstanceState)
{
   super.onCreate(savedInstanceState);
   TextView editTextDay = (TextView)findViewById(R.id.editTextDay);
   editTextDay.setVisibility(8);    //GONE
   setContentView(R.layout.main);
}
如果没有“editTextDay.setVisibility(8);”一行,应用程序不会崩溃


有什么问题吗?

移动这一行
setContentView(R.layout.main)
after
super.onCreate(savedInstanceState);

.
当前您的textview为空,因此它将引发异常。首先必须设置视图,然后使用findViewById方法。

在调用该方法之前,应设置内容布局:
findViewById()
;这就是它返回null的原因。因此,您的代码的工作方式如下:

public void onCreate(Bundle savedInstanceState)
{
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
   TextView editTextDay = (TextView)findViewById(R.id.editTextDay);
   editTextDay.setVisibility(8);    //GONE

}

将setContentView放在超级调用的正下方。 在设置内容视图之前,无法访问视图:

public void onCreate(Bundle savedInstanceState)
{
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
   TextView editTextDay = (TextView)findViewById(R.id.editTextDay);
   editTextDay.setVisibility(View.GONE);    //GONE
}

与您的问题没有直接关系,但您应该使用常量View.GONE而不是8。@Laurent“我同意这种方法,但由于某些原因eclipse无法识别GONE和VISIBLE,因此我必须使用0和8instead@Laurent:我认为是一样的,Goe是int类型的常数,他的值是8;请参阅:Belgi:try EditText.GONE@Houcine-是的,但是GONE更具可读性。唯一的问题是eclipse不会识别出存在这样一个常量…@Belgi:try:EditText.GONE:)