如果满足某个条件,我想动态隐藏一些元素。我使用此代码隐藏TextView
if (something) {
//do something
} else {
myTextView.setVisibility(View.GONE);
}
我在onCreate
中使用此代码。
然而,应用程序在View.GONE
所在的行中断。
为什么会这样?是否不允许在onCreate中隐藏元素?如果是这样,我应该在哪里使用此代码?
为了澄清,我想在Activity
加载之前隐藏它们。按钮的单击事件中的相同代码不会破坏应用程序。
答案 0 :(得分:1)
您的TextView myTextView可能为null, 你必须在使用它之前引用它。 通常你通过
来做到这一点myTextView = (TextView) findViewById(R.id.mytextviewid)
如Lukas Knuth所说,检查并发布您的Stracktrace。你应该看到 那里有一个NullPointerException。
答案 1 :(得分:1)
您可以在xml中制作视图visibility="gone"
....并检查特定条件..
if(cond)
{
myTextViewmyTextView.setVisibility(View.Visible);
}
同时检查xml中的id和findViewById()都应该是相同的....如果你的代码中没有引用myTextView id,它会显示:Null Pointer Exception