在特定数组上排序适配器
Sorting adapter on particular array
我有一个对象集合分配给一个适配器集到一个列表视图。我知道如何对包含单个对象的适配器值进行排序。我的问题是如何仅根据数据数据类型对集合进行排序。下面是我的合集
you = new MyVideoAdapter(getActivity(),vDancers,video, vName, vDanceStyle, vOwner, dCountry, vPic, vCreated, fullname,
vLikes,vComments, vViews,vRepost, objectID, nLikes, nComments, nRepost, vUserID, postType);
//you.comp
listView.setAdapter(you);
我想按日期数组 vCreated 对这个适配器(你)进行排序。在此先感谢您的帮助。
对于那些寻找解决方案的人,我就是这样做的(我不知道它是否是最好的解决方案,但它确实适合我的情况)。
1. 我没有用单独的数组填充适配器,而是创建了一个 ArrayList 并用我的 arrays.I 填充它并使用 compareTo().
对它进行了排序
public class Items implements Comparable<Items>{
private final Number vLikes; private final Number vComments; private final Number vRepost; private final Number vViews;
private final Date vCreated;
public Items(Number vLikes, Number vComments, Number vViews, Number vRepost, Date created) {
this.vCreated = vCreated;
this.fullname = fullname;
this.vLikes = vLikes;
this.vComments = vComments;
this.vViews = vViews;
this.vRepost = vRepost;
}
@Override
public int compareTo(Items o) {
if (getvCreated() == null || o.getvCreated() == null)
return 0;
return o.getvCreated().compareTo(getvCreated());
}
public Number getvLikes() {
return vLikes;
}
public Number getvComments() {
return vComments;
}
public Number getvViews() {
return vViews;
}
public Number getvRepost() {
return vRepost;
}
public Date getvCreated() {
return vCreated;
}
}
2。然后,我使用日期列对 arraylist 进行排序,并使用 Collections 应用排序。
List<Items> myList = new ArrayList<Items>();
Items item = new Items(a,b,c,d);//a, b, are my variables
myList.add(item);
3。我用排序后的数组列表填充了我的适配器。
Collections.sort(myList);
you = new MyAdapter(getActivity(), myList);
希望对您有所帮助。
我有一个对象集合分配给一个适配器集到一个列表视图。我知道如何对包含单个对象的适配器值进行排序。我的问题是如何仅根据数据数据类型对集合进行排序。下面是我的合集
you = new MyVideoAdapter(getActivity(),vDancers,video, vName, vDanceStyle, vOwner, dCountry, vPic, vCreated, fullname,
vLikes,vComments, vViews,vRepost, objectID, nLikes, nComments, nRepost, vUserID, postType);
//you.comp
listView.setAdapter(you);
我想按日期数组 vCreated 对这个适配器(你)进行排序。在此先感谢您的帮助。
对于那些寻找解决方案的人,我就是这样做的(我不知道它是否是最好的解决方案,但它确实适合我的情况)。 1. 我没有用单独的数组填充适配器,而是创建了一个 ArrayList 并用我的 arrays.I 填充它并使用 compareTo().
对它进行了排序public class Items implements Comparable<Items>{
private final Number vLikes; private final Number vComments; private final Number vRepost; private final Number vViews;
private final Date vCreated;
public Items(Number vLikes, Number vComments, Number vViews, Number vRepost, Date created) {
this.vCreated = vCreated;
this.fullname = fullname;
this.vLikes = vLikes;
this.vComments = vComments;
this.vViews = vViews;
this.vRepost = vRepost;
}
@Override
public int compareTo(Items o) {
if (getvCreated() == null || o.getvCreated() == null)
return 0;
return o.getvCreated().compareTo(getvCreated());
}
public Number getvLikes() {
return vLikes;
}
public Number getvComments() {
return vComments;
}
public Number getvViews() {
return vViews;
}
public Number getvRepost() {
return vRepost;
}
public Date getvCreated() {
return vCreated;
}
}
2。然后,我使用日期列对 arraylist 进行排序,并使用 Collections 应用排序。
List<Items> myList = new ArrayList<Items>();
Items item = new Items(a,b,c,d);//a, b, are my variables
myList.add(item);
3。我用排序后的数组列表填充了我的适配器。
Collections.sort(myList);
you = new MyAdapter(getActivity(), myList);
希望对您有所帮助。