Ich versuche, eine Liste von Daten mit Kontrollkästchen, um anzuzeigen, in dem Benutzer mehrere Elemente gleichzeitig auswählen können ... Ich möchte ein Suchfeld oben auf der Liste, die in der Liste suchen ...
Wie mache ich es?
Ich versuche, eine Liste von Daten mit Kontrollkästchen, um anzuzeigen, in dem Benutzer mehrere Elemente gleichzeitig auswählen können ... Ich möchte ein Suchfeld oben auf der Liste, die in der Liste suchen ...
Wie mache ich es?
Erstellen Sie zunächst einen Vektor mit allen Listenfeldern, so können Sie diese jederzeit auf dem Bildschirm hinzufügen und entfernen. Wenn Sie Bildschirm zu erstellen, fügen sie alle Steuer aufzulisten.
Wir nun an, Sie einer jener EditFields haben - Ihr Suchfeld ein. Sie können einen Listener für sie gesetzt und Text Änderungsereignis fangen.
Auf dieser Veranstaltung können Sie alle Felder aus Listensteuerung, nehmen Textwert von Suchfeld entfernen, durchlaufen alle Felder Vektor und fügen solche, die Suchkriterien erfüllen Kontrolle aufzulisten.
LookupList Kontrolle:
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);
}
}
}
Anwendungsbeispiel:
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());
}
}