У меня есть POJO:Фильтрация ListView пользовательских POJO путем их полей
public class RoomData implements Parcelable {
private String objectId, name, building, floor, imageUrl;
private boolean hasPc, hasProjector, hasTelepresence, hasWhiteboard;
private boolean dataReady = false;
private ArrayList<MeetingData> meetingData = new ArrayList<MeetingData>();
private int capacity;
private ArrayList<BeaconData> beacons = new ArrayList<BeaconData>();
private DateTime nextAvailableStart, nextAvailableEnd;
private boolean availableNow = false;
private ArrayList<Interval> meetingDuringIntervals = new ArrayList<Interval>();
}
, заполняемый в пользовательских ListView/ListAdapter.
Я хочу знать, как я могу фильтровать этот список по полям моего POJO
. Например, если я создаю объект RoomFilter
, это означает, что мое целое число capacity
должно быть выше X. Как это реализовать? Я могу только найти ссылки на filtering
по типам primitive
данных ...
Вот мой заказ Adapter
класс:
public class BeaconAdapter extends BaseAdapter {
private Context context;
private ArrayList<BLEDeviceAdvertisement> beaconArrayList = new ArrayList<BLEDeviceAdvertisement>();
private static LayoutInflater inflater = null;
//BeaconAdapter for the custom ListView
public BeaconAdapter(Context context, ArrayList<BLEDeviceAdvertisement> beaconArrayList) {
this.beaconArrayList = beaconArrayList;
this.context = context;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return beaconArrayList.size();
}
@Override
public BLEDeviceAdvertisement getItem(int position) {
return beaconArrayList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
//Custom getview for the custom layout beacon_row_item.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View myCustomView = convertView;
if (myCustomView == null)
myCustomView = inflater.inflate(R.layout.beacon_row_item, null);
return myCustomView;
}
}
Просто пройдите по списку, отфильтровывая то, что вам не нужно. Или, если вам нужно изменить фильтры, вы можете сохранить новый список, который является представлением по всему списку. Затем вы используете список в целом по списку в адаптере. –
Сделал именно это. Работает отлично. Отправьте его, и я соглашусь в качестве решения. Спасибо @Gil – Tukajo
сделано, не проблема :) –