我很困难。我用CalendarView创建了一个Gridview,每个位置都有一个日期。我用这个代码迭代它。
for (int n = 0; n < mnthlength; n++) {
itemvalue = df.format(pmonthmaxset.getTime());
Log.v("Calendar","look at this----->"+itemvalue);
pmonthmaxset.add(GregorianCalendar.DATE, 1);
day_string.add(itemvalue);
}
我有一个方法的另一个代码返回另一个arraylist ...
private List<ParseObject>getEventListFromParse(){
ParseQuery<ParseObject> query = ParseQuery.getQuery("Event");
query.whereEqualTo("Comercial", ParseUser.getCurrentUser().getObjectId());
query.include("Fecha");
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> objects, ParseException e) {
if (e == null) {
for (ParseObject obj:objects
) {
eventArraylist=new ArrayList<>();
eventArraylist.add(obj);
}
} else {
Log.d("score", "Error: " + e.getMessage());
}
}
});
return eventArraylist;
}
所以我们现在有
List<String> day_string;
和
List<ParseObject> eventArraylist;
这两个元素都呈现为字符串yyyy-mm-dd。我需要比较来循环每个位置从0开始并告诉我是否在day_string的第一个元素(例如今天2019-03-20),如果eventArraylist上有匹配的日期。
我检查了一些堆栈帖子,但可以实现它们。 How to compare two types of arraylist in android
看起来你正试图将String
与永远无法飞行的ParseObject
物体进行比较。为了正确起见,您可能需要考虑在列表中存储Date
或在比较之前将对象解析为Date
。
当你这样做,因为Date实现了Comparable,它就像它一样简单
date1.compareTo(date2);
你也可以迭代day_string
并检查元素是否存在使用
eventArraylist.contains(desiredElement)