【发布时间】:2014-06-17 05:16:53
【问题描述】:
我有一个想要动态添加和删除的 TextView,具体取决于 EditText 中的文本。我目前使用 removeView 正确地开始删除它,但是当我尝试调用 addView 时,它会抛出 NullPointerException,假设是因为 TextView 在删除后为空?
这是我的代码:
final TextView tagsText = (TextView)postDialogLayout.findViewById(R.id.newPostTagsText);
//remove since start with no tags
((LinearLayout)tagsText.getParent()).removeView(tagsText);
if(currentTags.equals("Tags: <font color='#33B5E5'></font>") && tagsText.isShown())
((LinearLayout)tagsText.getParent()).removeView(tagsText);
else if(!currentTags.equals("Tags: <font color='#33B5E5'></font>") && !tagsText.isShown())
//this line below throws the NullPointerException
((LinearLayout)tagsText.getParent()).addView(tagsText);
当最后一行被调用时,我可以说它是在正确的时间调用的,应用程序崩溃并抛出一个空指针异常。读取视图的正确方法是什么?
【问题讨论】:
-
一开始你想做什么?只需隐藏并显示
TextView?如果是,您可以通过使用setVisiblity()设置TextView的可见性来更简单地做到这一点。如果要隐藏它,请将可见性设置为View.GONE,如果要再次显示,请将其设置为View.VISIBLE。 -
我之所以避免这样做是因为它使视图的尺寸仍然存在,我想完全删除它。
-
如果将其设置为
View.GONE,就好像TextView不存在。
标签: java android xml layout view