Blackberry - Liste mit Kontrollkästchen zusammen mit Suchkriterien

stimmen
2

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?

Veröffentlicht am 22/07/2009 um 07:48
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
4

Erläuterung

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.

Code

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());
    }
}

PS

  • können Sie ein beliebiges Feld descendend Klasse hinzufügen Zur Liste (Bearbeiten / Label / CustomCheckBos usw.), aber es sollte einen String-Cookie mit dem Wert zu suchen.
  • Sie können Logik ändern, indem Feldbezeichnung, Text oder benutzerdefinierte Eigenschaft zu suchen.
Beantwortet am 22/07/2009 um 08:02
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more