我需要撤消我的内容列表。我找到Collections.reverse(temp);
,但不知道如何正确实施。
private class MyFilter extends Filter {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults oReturn = new FilterResults();
ArrayList<Advice> results = new ArrayList<Advice>();
if (orig == null)
orig = list;
if (constraint != null) {
if (orig != null) {
for (Advice d : orig) {
if ((d.getTitle() + " " + d.getText()).toLowerCase()
.contains(constraint.toString())) {
results.add(d);
}
}
}
}
list = results;
return oReturn;
}
@Override
protected void publishResults(CharSequence constraint,
FilterResults results) {
notifyDataSetChanged();
}
}
答案 0 :(得分:3)
简单地:
// Create the list
ArrayList<String> myList = new ArrayList<String>();
// Add some items to it
myList.add("one");
myList.add("two");
myList.add("three");
// Reverse it by using Collections utilities.
Collections.reverse(myList);
Log.i("DEBUG", myList.get(0)); // Should print 'three'
答案 1 :(得分:1)
您应该导入
import java.util.Collections;
然后使用
Collections.reverse(results);
答案 2 :(得分:1)
如果要添加符合条件的元素,并且没有java8或任何函数库,则可以在构造循环后将其反转,或者在遍历之前反转原始元素。或者在施工期间以相反的顺序遍历它。使用索引的示例:
for(int i = orig.size()-1; i >-1; i--) {
//add matching elements to the newly constructed list.
}
答案 3 :(得分:1)
更改您的代码如下: 私有类MyFilter扩展了Filter {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults oReturn = new FilterResults();
ArrayList<Advice> results = new ArrayList<Advice>();
if (orig == null)
orig = list;
if (constraint != null) {
if (orig != null) {
for (Advice d : orig) {
if ((d.getTitle() + " " + d.getText()).toLowerCase()
.contains(constraint.toString())) {
results.add(d);
}
}
}
}
Collections.reverse(results);
oReturn.values = results;
oReturn.count = results.size();
return oReturn;
}
@Override
protected void publishResults(CharSequence constraint,
FilterResults results) {
notifyDataSetChanged();
}
}
希望它会有所帮助
答案 4 :(得分:0)
解析器添加的最佳方式:
Collections.reverse(data);
System.out.println(data.toString());