2014-03-31 31 views
3

如何在android中的gridview中为行/列设置自定义颜色?试图在GridView中设置单元格(行/列)的背景颜色Android

我的gridView由一个gridArray类型的项目,我通过我希望它显示的所有数据,它的时间表。我根据我想要的位置计算项目的位置,然后显示项目。我无法更改单元格的背景颜色。我将如何去做这件事。

for (int d1 = 0; d1 < days.size(); d1++) { 
      if (myModules.get(1).equals(days.get(d1))) { 
       for (int e1 = 0; e1 < times.size(); e1++) { 
        if (startEndM1[0].equals(times.get(e1))) { 
         gridArray.set(((e1 * 5) + d1),new Item(myModules.get(0))); 
         if (!startEndM1[1].equals(times.get(e1 + 1))) { 
          gridArray.set((((e1 * 5) + d1) + 5), new Item(myModules.get(0)));       
         } 
         int position = ((e1 * 5) + d1); 
         ((View) gridView.getItemAtPosition(position)).setBackgroundColor(Color.BLUE); 
        } 
       } 
      } 
     } 

上面的代码是在justto设置的项目到其指定位置,如果我不得不改变我在哪里设定的项目特定backgorund细胞的颜色,它崩溃。 网格视图应该识别其位于的项目的位置。 有些帮助会非常感谢,谢谢。

+0

什么的解u发现了什么?请让我们知道 –

回答

3

确定首先,我犯了一个填字游戏,也不得不更改单元格的背景颜色......我做到了这样

View tv = (View) gridView.getChildAt(i); 
tv.setBackgroundColor(Color.RED); 

也anothers链接,对我帮助很大分别为:

Change Color of cell of grid

http://eureka.ykyuen.info/2010/03/15/android-%E2%80%93-applying-alternate-row-color-in-listview-with-simpleadapter/

+0

如果我试图这样做,它会给我一个空指针异常,我不明白它,似乎没有在该位置或任何位置找到任何事情。 – sponturious

+0

也有可能,“i”的值大于gridview的大小... –

+0

这是不可能的,因为不是因为当我定义customadapter'customGridAdapter = new CustomGridViewAdapter时,gridView的大小应该设置相应的大小(this,R.layout.row_grid,gridArray);'所以它应该自动获得gridArray的大小。没有? – sponturious

相关问题