activity where the filter method is put
public static List<Wine> filterByCountry(String country) {
if (country.equals("")) {
return wines;
}
ArrayList<Wine> winesFil = new ArrayList<Wine>(wines);
for(Wine wine : winesFil) {
if (!wine.getCountry().contains(country)) {
filteredList.remove(wine);
}
}
return filteredList;
}
public static List<Wine> filterByTaste(String taste) {
if (taste.equals("")) {
return wines;
}
ArrayList<Wine> winesFil = new ArrayList<Wine>(wines);
for(Wine wine : winesFil) {
if (!wine.getTaste().contains(taste)) {
filteredList.remove(wine);
}
}
return filteredList;
}
public static List<Wine> filterByYear(int year ) {
if (Integer.valueOf(year)==null) {
return wines;
}
ArrayList<Wine> winesFil = new ArrayList<Wine>(wines);
for(Wine wine : winesFil) {
if (wine.getYear()!=year) {
filteredList.remove(wine);
}
}
return filteredList;
}
public static List<Wine> filterByBiologic(boolean biologic) {
if (!biologic) {
return wines;
}
ArrayList<Wine> winesFil = new ArrayList<Wine>(wines);
for(Wine wine : winesFil) {
if (wine.getBiologic()!=biologic) {
filteredList.remove(wine);
}
}
return filteredList;
}
public static List<Wine> filterBySparkling(boolean sparkling) {
if (!sparkling) {
return wines;
}
ArrayList<Wine> winesFil = new ArrayList<Wine>(wines);
for(Wine wine : winesFil) {
if (wine.getSparkling()!=sparkling) {
filteredList.remove(wine);
}
}
return filteredList;
}
public static List<Wine> filterByColor(String color) {
if (color.equals("all")) {
return wines;
}
ArrayList<Wine> winesFil = new ArrayList<Wine>(wines);
for(Wine wine : winesFil) {
if (!wine.getCountry().contains(color)) {
filteredList.remove(wine);
}
}
return filteredList;
}
public static void clearFilter()
{
adapter.clear();
for(Wine wine : winesCopy)
{
adapter.add(wine);
}
adapter.notifyDataSetChanged();
lv.setAdapter(adapter);
filteredList = new ArrayList<Wine>(wines);
}
public static void setFilter()
{
adapter.clear();
for(Wine wine : filteredList)
{
adapter.add(wine);
}
adapter.notifyDataSetChanged();
lv.setAdapter(adapter);
}
activity where the filtering input is given:
@Override
public void onClick(View v) {
ListWineView.clearFilter();
ListWineView.filterByCountry(etLand.getText().toString());
if(!etYear.getText().toString().equals("")){
ListWineView.filterByYear(Integer.valueOf(etYear.getText().toString()));
}
ListWineView.filterByTaste(etTaste.getText().toString());
ListWineView.filterByBiologic(cbBiologic.isSelected());
ListWineView.filterBySparkling(cbMouserend.isSelected());
ListWineView.filterByColor(spinner1.getSelectedItem().toString());
ListWineView.setFilter();
ListWinesViewFilterActivity.this.finish();
}
});