BlackBerry - Λίστα με πλαίσιο ελέγχου, μαζί με κριτήρια

ψήφοι
2

Είμαι προσπαθεί να εμφανιστεί μια λίστα των στοιχείων με πλαίσια ελέγχου, όπου ο χρήστης μπορεί να επιλέξει πολλά στοιχεία σε ένα χρόνο ... θέλω ένα πεδίο αναζήτησης στην κορυφή της λίστας που θα ψάξει στη λίστα ...

Πως το κάνω?

Δημοσιεύθηκε 22/07/2009 στις 07:48
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
4

Εξήγηση

Πρώτον, τη δημιουργία ενός φορέα με όλα τα πεδία λίστας, έτσι θα είστε σε θέση να προσθέσετε και να αφαιρέσετε τους στην οθόνη ανά πάσα στιγμή. Όταν δημιουργείτε οθόνη, όλα αυτά προσθέσετε στη λίστα ελέγχου.

Τώρα, ας πούμε ότι έχετε ένα από αυτά τα EditFields - πεδίο αναζήτησης σας. Μπορείτε να ορίσετε έναν ακροατή γι 'αυτό και να πιάσει περίπτωση αλλαγής κειμένου.

Σε αυτή την περίπτωση μπορείτε να αφαιρέσετε όλα τα πεδία από τον έλεγχο κατάλογο, να λάβει την αξία κειμένου από πεδίο αναζήτησης, επαναλάβει όλα τα διανυσματικά πεδία και προσθέστε αυτές που πληρούν τα κριτήρια αναζήτησης στη λίστα ελέγχου.

Κώδικας

LookupList ελέγχου:

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

δείγματος Χρήση:

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

  • μπορείτε να προσθέσετε οποιαδήποτε κατηγορία descendend πεδίο στη λίστα (Επεξεργασία / Ετικέτα / CustomCheckBos κλπ), αλλά θα πρέπει να έχει ένα μπισκότο string με αξία για την αναζήτηση.
  • μπορείτε να αλλάξετε τη λογική να ψάξετε με ετικέτα Πεδίο, κείμενο ή προσαρμοσμένη ιδιότητα.
Απαντήθηκε 22/07/2009 στις 08:02
πηγή χρήστη

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