PDA

View Full Version : فیلتر List View



sara62
چهارشنبه 21 آبان 1393, 17:13 عصر
سلام
میخوام لیست ویو رو فیلتر کنم رو نام ماشین کداشو نوشتم اما هر چی تو ادیت تکست تایپ میکنم هیچ اتفاقی نمیافته.نمیدونم کجاش اشتباه کردم.



این کدا رو تو کلاس CarListAdapter نوشتم


public Filter getFilter() {

return mFilter;
}


private class ItemFilter extends Filter {
@SuppressLint("DefaultLocale")
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults results = new FilterResults();

if (constraint == null || constraint.length() == 0) {

results.values = originalData;
results.count = originalData.size();
}
else {
List<Car> nCarList = new ArrayList<Car>();

for (Car p : originalData) {
if (p.getTypeCar().toUpperCase().startsWith(constrain t.toString().toUpperCase()))
nCarList.add(p);
}

results.values = nCarList;
results.count = nCarList.size();

}
return results;
}




@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
if (results.count == 0)
notifyDataSetInvalidated();
else {
filteredData = (ArrayList<Car>) results.values;
notifyDataSetChanged();
}
}





توی Activity


EditText inputSearch = (EditText) findViewById(R.id.edSearch);

inputSearch.addTextChangedListener(new TextWatcher() {

public void onTextChanged(CharSequence cs, int start, int before, int count) {

listAdapter.getFilter().filter(cs);




}
ممنونم

tux-world
چهارشنبه 21 آبان 1393, 23:55 عصر
اول کدتون رو تو نوشته اصلاح کنید من که نتونستم بخونم

sara62
پنج شنبه 22 آبان 1393, 01:23 صبح
public Filter getFilter() {

return mFilter;
}

private class ItemFilter extends Filter {

@Override
protected FilterResults performFiltering(CharSequence constraint) {
// TODO Auto-generated method stub
FilterResults results = new FilterResults();

if (constraint == null || constraint.length() == 0) {

results.values = originalData;
results.count = originalData.size();
}
else {

List<Car> nCarList = new ArrayList<Car>();

for (Car p : originalData) {
if (p.getTypeCar().toUpperCase().startsWith(constrain t.toString().toUpperCase()))
nCarList.add(p);
}

results.values = nCarList;
results.count = nCarList.size();

}
return results;
}

@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence c, FilterResults results) {
// TODO Auto-generated method stub
if (results.count == 0)
notifyDataSetInvalidated();
else {
filteredData = (ArrayList<Car>) results.values;
notifyDataSetChanged();
}





EditText inputSearch = (EditText) findViewById(R.id.edSearch);

inputSearch.addTextChangedListener(new TextWatcher() {

public void onTextChanged(CharSequence cs, int start, int before, int count) {


PhotosActivity.this.listAdapter.getFilter().filter (cs);


}

public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub

}

public void afterTextChanged(Editable cs) {


// TODO Auto-generated method stub

}
});

tux-world
پنج شنبه 22 آبان 1393, 11:47 صبح
این لینک رو ببین یه مثال قشنگ زده

http://stackoverflow.com/questions/23422072/searchview-in-listview-having-a-custom-adapter/23422665#23422665