字符串比较器,例如按照时间的升序降序,或者姓氏排序

使用Collections.sort函数。

 1 /**
 2  * Created by victory on 2016/11/17.
 3  * 政务适配器
 4  */
 5 
 6 public class GovernmentAdapter extends ArrayAdapter<GovernmentInfo> {
 7     private ArrayList<GovernmentInfo> originalInfo;
 8     private Context context;
 9 
10     public GovernmentAdapter(Context context, ArrayList<GovernmentInfo> items) {
11         super(context, 0, items);
12         this.context = context;
13         this.originalInfo = items;
14     }
15 
16     @Override
17     public View getView(int index, View view, ViewGroup arg2) {
18         ViewHoulder houlder = null;
19         if (view == null) {
20             houlder = new ViewHoulder();
21             view = LayoutInflater.from(context).inflate(R.layout.listitem_government, null);
22             houlder.mtxtActiName = (TextView) view.findViewById(R.id.txtActivityName);
23             houlder.mtxtActivityAddress = (TextView) view.findViewById(R.id.txtActivityAddress);
24             houlder.mtxtStartTime = (TextView) view.findViewById(R.id.txtStartTime);
25             houlder.mtxtLeader = (TextView) view.findViewById(R.id.txtLeader);
26 //            houlder.mtxtActivityType = (TextView) view.findViewById(R.id.txtActivityType);
27             houlder.mtxtGovernmentType = (TextView) view.findViewById(R.id.txtGovernmentType);
28             view.setTag(houlder);
29         } else {
30             houlder = (ViewHoulder) view.getTag();
31         }
32 /**
33  * 字符串比较器,按照时间的升序(o1.getStartTime().compareTo(o2.getStartTime()))
34  * 降序(o2.getStartTime().compareTo(o1.getStartTime()))
35  */
36         Collections.sort(originalInfo, new Comparator<GovernmentInfo>() {
37             @Override
38             public int compare(GovernmentInfo o1, GovernmentInfo o2) {
39                 if (!o1.getStartTime().equals(o2.getStartTime())) {
40                     return o2.getStartTime().compareTo(o1.getStartTime());
41                 }
42                 return 0;
43             }
44         });
45 
46         GovernmentInfo item = originalInfo.get(index);
47         if (item != null) {
48             houlder.mtxtActiName.setText(item.getTitle());
49             houlder.mtxtActivityAddress.setText(item.getLocation());
50             houlder.mtxtStartTime.setText(item.getTime());
51 //            houlder.mtxtActivityType.setText(item.getType());
52             houlder.mtxtGovernmentType.setText(item.getStatus());
53 
54             houlder.mtxtGovernmentType.setBackgroundResource(R.drawable.tv_circular);
55             /**
56              * 在使用shape的同时,用代码修改shape的颜色属性
57              * 一个view只能设置一个background,每设置一次Background,另一个Background就会就会被替换掉
58              *所以用下面这个函数来进行多个设置
59              */
60             GradientDrawable myGrad = (GradientDrawable) houlder.mtxtGovernmentType.getBackground();
61             if (item.getStatus().equals("登记")) {
62                 myGrad.setColor(context.getResources().getColor(R.color.theme_color_primary_light));
63             } else {
64                 myGrad.setColor(context.getResources().getColor(R.color.zong));
65             }
66             List<PeopleInfo> list = item.getLaders();
67 //                houlder.mtxtLeader.setAdapter(new NameAdapter(x.app(), list));String leadernames = null;
68             String leadernames = null;
69             int size = list.size();
70             for (int i = 0; i < size; i++) {
71                 if (i == 0)
72                     leadernames = list.get(i).getName();
73                 else
74                     leadernames = leadernames + "," + list.get(i).getName();
75             }
76             if (leadernames != null) {
77                 houlder.mtxtLeader.setText(leadernames);
78             }
79         }
80 
81         return view;
82     }
83 
84     public final class ViewHoulder {
85         private TextView mtxtActiName;//活动名称
86         private TextView mtxtActivityAddress;//活动地点
87         private TextView mtxtStartTime;//开始时间
88         private TextView mtxtLeader;//出席领导
89         //        private TextView mtxtActivityType;//活动类型
90         private TextView mtxtGovernmentType;//登记类型
91     }
92 }
原文地址:https://www.cnblogs.com/cbx17v/p/6730709.html