我想从列表视图中搜索日期。我的问题是基于我们如何搜索从日期到日期之间的日期。还重新排列列表视图。
答案 0 :(得分:0)
要排序,您可以:
implement Comparable<>
;把你的大于,等于和小于compareTo()
extends Comparator<>
来决定订单的类。然后使用Collections.sort()
订购列表。
对于搜索,您可以保留对支持适配器的ListView的引用,并迭代它,可能会根据需要删除,隐藏或复制匹配的元素到另一个List。
答案 1 :(得分:0)
通过从适配器获取过滤器进行搜索。 http://developer.android.com/reference/android/widget/Filter.html
答案 2 :(得分:0)
您拥有Arraylist中的所有数据只是在您的活动中实现TextWatcher并在onTextchanged中调用filterlist方法。
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
adp.filterList(s);
}
// add this method in adapter
public emotions_adapter(Context context, ArrayList<String> emotions_symbol,
ArrayList<String> emotions_name) {
emo_symbole = emotions_symbol;
emo_name = emotions_name;
this.response_name = emotions_name;
this.response_symbol = emotions_symbol;
C = context;
l_Inflater = LayoutInflater.from(context);
}
public void filterList(CharSequence s) {
if (s.toString().length() > 0) {
ArrayList<String> filteredname = new ArrayList<String>();
ArrayList<String> filteredsymbole = new ArrayList<String>();
for (int i = 0; i < response_name.size(); i++) {
if (response_name.get(i).toLowerCase().contains(s.toString().toLowerCase())|| response_symbol.get(i).toLowerCase()
.contains(s.toString().toLowerCase())) {
filteredname.add(response_name.get(i));
filteredsymbole.add(response_symbol.get(i));
}
}
emo_name = filteredname;
emo_symbole = filteredsymbole;
notifyDataSetChanged();
} else {
emo_name = response_name;
emo_symbole = response_symbol;
notifyDataSetChanged();
}
}