我遇到了removeAllViews()方法的问题。正如你在图片中看到的那样,它仍然有2个TextView,它们是空的,但仍然在我的布局中创建一个空白区域,使它看起来很糟糕。
http://jacho981.hol.es/Screenshot_2014-04-22-11-55-12.png
正如您在下一张图片中看到的那样,在上一张图片中应该消失的那些TextViews将用于此图片。
http://jacho981.hol.es/Screenshot_2014-04-22-11-55-19.png
每当我按下“Moto”或“Coche”按钮时,第一个调用的方法是在包含视图的LinearLayout上的removeAllViews()。 理论上,只有当对象包含该字符串中的某些内容时,才会创建这些视图。
如果removeAllViews工作正常,那么我不明白它为什么要创建TextViews,因为它们在这样的IF语句中(removeAllViews()方法在一系列IF句子之前被调用,如下一个):
// COBER_TITLE
if (listaSeguros
.get(j)
.getSeg_cober_title() != null
|| listaSeguros
.get(j)
.getSeg_cober_title() != "") {
TextView tv_seg_cober_title = new TextView(
getActivity());
tv_seg_cober_title
.setText(listaSeguros
.get(j)
.getSeg_cober_title());
tv_seg_cober_title
.setAllCaps(true);
tv_seg_cober_title
.setTextColor(Color
.parseColor("#275880"));
tv_seg_cober_title
.setTextSize(
TypedValue.COMPLEX_UNIT_SP,
26);
tv_seg_cober_title
.setGravity(Gravity.CENTER_HORIZONTAL);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
new LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT));
params.setMargins(10,
10, 10, 10);
tv_seg_cober_title
.setLayoutParams(params);
content_frame_seguros
.addView(tv_seg_cober_title);
}
因此,如果String变量Seg_cober_title为null或为空,则根本不应创建textView ...至少这是我无法理解的。
这真是弄乱了我的应用程序的外观。我非常感谢大家的帮助!
PS:如果你想让我发布更多的CODE,我只是不想填写代码行。
谢谢!
答案 0 :(得分:0)
你有2个错误。 这种情况总是如此。
(listaSeguros.get(j).getSeg_cober_title() != null || listaSeguros.get(j).getSeg_cober_title() != "")
因为你的第二个条件listaSeguros.get(j).getSeg_cober_title() != ""
为真,即使它真实包含空字符串。阅读有关如何比较java中的对象的信息。 (您必须使用equals()
字符串方法而不是"!="
。
第二个错误是“||
”。它是“OR
”,但您需要“AND
”(“&&
”)。
如果你的标题等于null,那么它不等于空字符串,你的整个条件都是真的。只有当你的标题为空并且同时清空字符串时,它才会为假。