我正在使用Android应用程序,我在My Listview中显示了不同类型的视图。我的问题
我在ListView中显示了5个项目,值是状态,所需日期,响应
日期,标题,名称。如何更改所需日期值小于今天日期列表视图
背景颜色为红色。我可以查看下面的型号。颜色显示但我可以快速滚动
列表视图颜色不稳定。请帮助我.......
我的观点:
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
HashMap<String, String> str=Action_module_screen.mylist.get(position);
String req=str.get("Req_date");
Calendar c2 = Calendar.getInstance();
Calendar c3 = Calendar.getInstance();
Calendar c = Calendar.getInstance();
int cyear = c.get(Calendar.YEAR);
int cmonth = c.get(Calendar.MONTH);
int cday = c.get(Calendar.DAY_OF_MONTH);
c2.set(cyear,cmonth,cday);
Locale l=new Locale(req);
Calendar c1 = Calendar.getInstance(l);
int cyear1 = c1.get(Calendar.YEAR);
int cmonth1 = c1.get(Calendar.MONTH);
int cday1 = c1.get(Calendar.DAY_OF_MONTH);
c3.set(cyear1,cmonth1,cday1);
String s=str.get("status");
if((s.equals("CLO"))||(s.equals("APP"))||(s.equals("ANN"))||(s.equals("ANR"))||(s.equals("AOK")))
{
view.setBackgroundColor(Color.GREEN);
}
if(s.equals("NEW"))
{
view.setBackgroundColor(Color.WHITE);
}
if(s.equals("REJ"))
{
view.setBackgroundColor(Color.GRAY);
}
if(c2.after(c3))
{
view.setBackgroundColor(Color.RED);
}
return view;
}
答案 0 :(得分:0)
我可能错了,但我相信问题是你没有默认的背景颜色。由于视图被重用(通过convertView),您可能之前将背景设置为RED,然后当您回到此处时,您可能无法将颜色设置回默认值,无论应该是什么。当然,我不确定你的数据是什么样的,但在我看来,你的if条款都不会匹配。