2014-04-22 42 views
1

我遇到了removeAllViews()方法的問題。正如你在圖片中看到的那樣,它仍然有2個TextViews是空的,但是仍然在我的佈局中創建了一個空白空間,使它看起來很糟糕。removeAllViews不能完全刪除視圖

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

每次我按下「摩托」或「科奇」 butons,稱爲第一種方法是在保持該意見的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); 
               } 

這樣的情況下,該字符串變量Seg_cober_title爲空或空,TextView的不應該在所有的創建...至少這是我無法理解。

這真的搞亂了我的應用程序的外觀。我會感謝你們的一切幫助! PS:如果你想要我發佈更多的代碼,我會,我只是不想填充代碼。

謝謝!

回答

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,則它不是等於空字符串,並且您的整個條件是真實的,只有當您的標題將同時爲空和空字符串時,它纔會爲false。