为什么应用程序在setCisibility(View.GONE)行上的onCreate()中断?

时间:2011-07-03 12:37:09

标签: android visibility

如果满足某个条件,我想动态隐藏一些元素。我使用此代码隐藏TextView

if (something) {
            //do something
        } else {
            myTextView.setVisibility(View.GONE);
}

我在onCreate中使用此代码。

然而,应用程序在View.GONE所在的行中断。

为什么会这样?是否不允许在onCreate中隐藏元素?如果是这样,我应该在哪里使用此代码?

为了澄清,我想在Activity加载之前隐藏它们。按钮的单击事件中的相同代码不会破坏应用程序。

2 个答案:

答案 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