我使用GridView
创建了自定义日历。现在我想设置周末的背景颜色(即周六,周日)。
我想知道,我们如何获取GridView
的特定列及其项目?
答案 0 :(得分:1)
在适配器中,您使用getView()
方法返回项目视图,您可以根据位置使用它来更改视图背景。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(position == SUNDAY || position == SATURDAY){
// weekends background
} else{
// default background
}
}
<强>更新强>:
由于您的模型中有日期,因此您可以使用日历检查其周末是否:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Calendar c = Calendar.getInstance();
c.setTime(yourDate);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
if(dayOfWeek == 1 /*for SUNDAY*/|| dayOfWeek == 7 /*for SATURDAY*/){
// weekends background
} else{
// default background
}
}
PS:对于Sun-&gt; Sat
,周为1-> 7答案 1 :(得分:0)
您可以通过定义位置og网格
来设置它if(position==1){ // item's position that you want to change background color
[VIEW_YOU_WANT_TO_CHANGE_BACKGROUND].setBackgroundColor(Color.RED);
}else{
// Set other item's background color to default background color you want
[VIEW_YOU_WANT_TO_CHANGE_BACKGROUND].setBackgroundColor(Color.[WHAT_COLOR_YOU_WANT]);
}
<强>更新强>
假设您有一个3 * 3的网格,然后将其设置为
if(position==2 || position==3){
[VIEW_YOU_WANT_TO_CHANGE_BACKGROUND].setBackgroundColor(Color.RED);
}elseif(position==5 || position==6){
[VIEW_YOU_WANT_TO_CHANGE_BACKGROUND].setBackgroundColor(Color.BLUE);
}elseif(position==8 || position==9){
[VIEW_YOU_WANT_TO_CHANGE_BACKGROUND].setBackgroundColor(Color.GREEN);
}else{
[VIEW_YOU_WANT_TO_CHANGE_BACKGROUND].setBackgroundColor(Color.[WHAT_COLOR_YOU_WANT]); }