Próbuję wyświetlić listę danych z pól, gdzie użytkownik może wybrać kilka pozycji naraz ... Chcę pole wyszukiwania na górze listy, która będzie przeszukiwać listy ...
Jak mam to zrobić?
Próbuję wyświetlić listę danych z pól, gdzie użytkownik może wybrać kilka pozycji naraz ... Chcę pole wyszukiwania na górze listy, która będzie przeszukiwać listy ...
Jak mam to zrobić?
Najpierw utwórz wektor ze wszystkimi polami listy, dzięki czemu będą mogli dodawać i usuwać je na ekranie w dowolnym momencie. Kiedy ekran tworzyć, dodawać je wszystkie do listy kontroli.
Teraz, powiedzmy, że masz jeden z tych EditFields - Twój polu wyszukiwania. Można ustawić słuchacza do niej i złapać zmian tekst wydarzenie.
W tym przypadku można usunąć wszystkie pola z listy kontroli, podejmują wartość tekstową z pola wyszukiwania, iteracyjne wszystkich pól wektorowych i dodać te, które spełniają kryteria wyszukiwania, aby lista kontroli.
LookupList kontrola:
public class LookupList extends VerticalFieldManager {
Vector mItems = null;
public LookupList() {
super();
mItems = new Vector();
}
public void addItem(Field itemField) {
String cookie = (String) itemField.getCookie();
if (null == cookie)
throw new IllegalArgumentException(
"String cookie must be set to lookupList field");
mItems.addElement(itemField);
add(itemField);
}
public void removeItem(int index) {
Field itemField = (Field) mItems.elementAt(index);
mItems.removeElement(itemField);
delete(itemField);
}
public void lookup(String searchValue) {
deleteAll();
for (int i = 0, count = mItems.size(); i < count; i++) {
Field field = (Field) mItems.elementAt(i);
String cookie = (String) field.getCookie();
if (cookie.startsWith(searchValue))
add(field);
}
}
}
Próbka Zastosowanie:
class Scr extends MainScreen implements FieldChangeListener {
LookupList mList = null;
BasicEditField mEdit = null;
public Scr() {
super();
mEdit = new BasicEditField();
add(mEdit);
mEdit.setChangeListener(this);
mList = new LookupList();
for (int i = 0; i < 100; i++) {
LabelField label = new LabelField("Lookup field #"
+ String.valueOf(i));
label.setCookie(String.valueOf(i));
mList.addItem(label);
}
add(mList);
}
public void fieldChanged(Field field, int context) {
if (field == mEdit)
mList.lookup(mEdit.getText());
}
}