繁体   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