簡體   English   中英

如何在 Android Studio 中使用具有多個 LinearLayouts 的字符串數組

[英]How to use String array with multiple LinearLayouts in Android Studio

我想使用字符串數組作為 LinearLayouts 的增量,如下所示,用於根據當前月份從 JAN 到 DEC 的 12 個月背景顏色變化。 但它根本不按照下面的代碼工作。 我缺少什么,請給我提供正確的代碼片段和示例。

String[] string = {linear_layout1, linear_layout2, linear_layout3, linear_layout4, linear_layout5, linear_layout6, linear_layout7, linear_layout8, linear_layout9, linear_layout10, linear_layout11, linear_layout12};
   if(monthOfYear <= 12) {
      for(int i = 1; i <= 12; i++) 
         {
            string.setBackgroundColor(getResources().getColor(R.color.GRAY));
         }
   }

先感謝您..

所以當我得到你的問題時,你有很多視圖,你想改變它們的背景顏色,對嗎? 如果是這樣,那么您的代碼就有問題,解決方法是:

LinearLayout[] lns= {linear_layout1, linear_layout2, linear_layout3, linear_layout4, linear_layout5, linear_layout6, linear_layout7, linear_layout8, linear_layout9, linear_layout10, linear_layout11, linear_layout12};
   if(monthOfYear <= 12) {
      for(int i = 0; i <= 11; i++) 
         {
            lns[i].setBackgroundColor(getResources().getColor(R.color.GRAY));
         }
   }

所以首先 LinearLayouts 是視圖,你需要有一個 LinearLayouts 數組或視圖而不是字符串 [](為什么是字符串?)已在 for 循環中聲明並讓每個 LinearLayout 進行更改並對其進行處理。 為了使這更容易,我將 for 循環的開始從 1 更改為 0,結束從 12 更改為 11。(您可以使用 for-each 而不是 for 它會更容易...)還有其他問題嗎? 只是問。

編輯

好的,我想我看到了您的評論,我認為這些linear_layout1 ,...只是您的 .xml 文件中的 ID。 正確的? 在這種情況下,您的代碼應該是這樣的:

LinearLayout[] lns= {(LinearLayout)findViewById(R.id.linear_layout1),(LinearLayout)findViewById(R.id.linear_layout2),(LinearLayout)findViewById(R.id.linear_layout3),(LinearLayout)findViewById(R.id.linear_layout4),(LinearLayout)findViewById(R.id.linear_layout5),(LinearLayout)findViewById(R.id.linear_layout6),(LinearLayout)findViewById(R.id.linear_layout7),(LinearLayout)findViewById(R.id.linear_layout8),(LinearLayout)findViewById(R.id.linear_layout9),(LinearLayout)findViewById(R.id.linear_layout10),(LinearLayout)findViewById(R.id.linear_layout11),(LinearLayout)findViewById(R.id.linear_layout12)};
      for(int i = 0; i <= 11; i++) 
         {
            lns[i].setBackgroundColor(getResources().getColor(R.color.GRAY));
         }

而且我認為 if 語句也沒有用,因為 for 循環總是 12 次那么 if 是什么? 所以我也刪除了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM