8
我正在使用网格视图来显示月份日历。当我在日历上触摸日期时,通过更改背景和文本颜色突出显示相应的单元格。一切都像魅力一样,除非我选择一个新的日期,我无法取消选中一个单元格。GridView:按位置获取视图
当我点击日期我记得的位置,所以,当我选择了一个新的,我知道,我以前点击:
protected OnClickListener onClicThisMonthDate(final int position)
{
return new OnClickListener() {
@Override
public void onClick(View v)
{
if(prevDateSelected > -1)
{
//Get the view by the oldPosition
//Change its background and text color
}
prevDateSelected = position;
TextView casecal = (TextView) v.findViewById(R.id.case_cal);
casecal.setBackgroundColor(Color.rgb(93, 94, 94));
casecal.setTextColor(Color.WHITE);
}
};
}
是否有解决方案得到通过他的位置的看法?选择一个单元并取消选择所有其他单元的最有效方法是什么? 注意:通过“选择一个单元格”我的意思是突出显示它,通过改变它的风格。
不幸的是,GridView.setSelection不能在触摸模式下工作。获取childAt似乎没问题,但有没有办法只更新这个视图,而不是所有的gridview? – grunk
调用View.invalidate()(来自UI线程)或View.postInvalidate()(来自非UI线程)来更新一个视图。 – xevincent