如何在getview方法中检查日期值

时间:2010-12-14 15:28:03

标签: android

我正在使用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;

    }

1 个答案:

答案 0 :(得分:0)

我可能错了,但我相信问题是你没有默认的背景颜色。由于视图被重用(通过convertView),您可能之前将背景设置为RED,然后当您回到此处时,您可能无法将颜色设置回默认值,无论应该是什么。当然,我不确定你的数据是什么样的,但在我看来,你的if条款都不会匹配。