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)
aftersuper.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:)