public void addItem(String content, String startyear, String startmonth, String startdate,
String startampm, String starthour, String startminute, String finishyear,
String finishmonth, String finishdate, String finishampm, String finishhour,
String finishminute){
ContentListViewItem item = new ContentListViewItem();
item.setContent(content);
item.setStart_year(startyear);
item.setStart_month(startmonth);
item.setStart_date(startdate);
item.setStart_ampm(startampm);
item.setStart_hour(starthour);
item.setStart_minute(startminute);
item.setFinish_year(finishyear);
item.setFinish_month(finishmonth);
item.setFinish_date(finishdate);
item.setFinish_ampm(finishampm);
item.setFinish_hour(finishhour);
item.setFinish_minute(finishminute);
listViewItemList.add(item);
notifyDataSetChanged();
adapte additem으로 넣어주고
@Override
public Filter getFilter() {
if(listFilter == null){
listFilter = new ListFilter();
}
return listFilter;
}
class ListFilter extends android.widget.Filter {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults results = new FilterResults();
if(constraint == null || constraint.length() == 0){
results.values = listViewItemList;
results.count = listViewItemList.size();
} else {
ArrayList<ContentListViewItem> itmeList = new ArrayList<ContentListViewItem>();
for(ContentListViewItem item : listViewItemList) {
if(item.getContent().toUpperCase().contains(constraint.toString().toUpperCase()));
{
itmeList.add(item);
}
}
results.values = itmeList;
results.count = itmeList.size();
}
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
filterdeItemList = (ArrayList<ContentListViewItem>) results.values;
if(results.count > 0){
notifyDataSetChanged();
} else {
notifyDataSetChanged();
}
}
필터를하려고 다른 코드 참조해서 작성
public interface Comparatorinter<ContentListViewItem> {
String compare(ContentListViewItem o1, ContentListViewItem o2);
}
필터 인터페이스입니다.
EditText Edit_search = (EditText)view.findViewById(R.id.Edit_search);
Edit_search.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable edit) {
String filterText = edit.toString();
((ContentListViewAdapter)listview.getAdapter()).getFilter().filter(filterText);
}
});
메인함수의 필터하는 부분입니다.