Android 如何在getview方法中检查日期值
我正在使用android应用程序,我的Listview中显示了不同类型的视图。我的问题是 我已经在ListView中显示了5项。值为状态、要求日期、响应 日期、标题、名称。如何更改所需的日期值小于今天日期列表视图 背景颜色是红色。我可以检查下面的模型。显示颜色,但我可以快速滚动 列表视图颜色不稳定。请帮助我 我的getview:Android 如何在getview方法中检查日期值,android,Android,我正在使用android应用程序,我的Listview中显示了不同类型的视图。我的问题是 我已经在ListView中显示了5项。值为状态、要求日期、响应 日期、标题、名称。如何更改所需的日期值小于今天日期列表视图 背景颜色是红色。我可以检查下面的模型。显示颜色,但我可以快速滚动 列表视图颜色不稳定。请帮助我 我的getview: public View getView(int position, View convertView, ViewGroup parent) { Vi
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;
}
public View getView(int位置、视图转换视图、视图组父视图){
视图=super.getView(位置、转换视图、父级);
HashMap str=Action\u module\u screen.mylist.get(位置);
字符串req=str.get(“req_日期”);
Calendar c2=Calendar.getInstance();
Calendar c3=Calendar.getInstance();
Calendar c=Calendar.getInstance();
int cyear=c.get(日历年);
int cmonth=c.get(日历月);
int cday=c.get(日历日/月);
c2.集合(cyear、cmonth、cday);
语言环境l=新语言环境(req);
Calendar c1=Calendar.getInstance(l);
int cyear1=c1.get(日历年);
int cmonth1=c1.get(日历月);
int cday1=c1.get(日历日/月);
c3.集合(cyear1、CMONT1、cday1);
字符串s=str.get(“status”);
如果((s.equals(“CLO”))|(s.equals(“APP”))|(s.equals(“ANN”))|(s.equals(“ANR”))|(s.equals(“AOK”))
{
视图.setBackgroundColor(颜色.绿色);
}
如果(s.equals(“新”))
{
视图.setBackgroundColor(颜色.白色);
}
如果(s.equals(“REJ”))
{
视图.背景颜色(颜色.灰色);
}
如果(c2.在(c3)之后)
{
视图.setBackgroundColor(颜色.红色);
}
返回视图;
}
我可能错了,但我相信问题在于您没有默认的背景色。由于视图是重复使用的(通过convertView),您可能已经将背景设置为红色,然后当您回到这里时,您可能不会将颜色设置回默认值,不管它是什么。当然,我不确定您的数据是什么样子的,但在我看来,您的if子句都不匹配