removeAllViews不完全删除视图

时间:2014-04-22 10:27:59

标签: android textview

我遇到了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,我只是不想填写代码行。

谢谢!

1 个答案:

答案 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,那么它不等于空字符串,你的整个条件都是真的。只有当你的标题为空并且同时清空字符串时,它才会为假。