ब्लैकबेरी - खोज मापदंड के साथ चेकबॉक्स के साथ सूची

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

पुनश्च

  • आप सूची (संपादित करें / लेबल / CustomCheckBos आदि) किसी भी फील्ड descendend वर्ग में जोड़ सकते हैं, लेकिन यह मूल्य के साथ एक स्ट्रिंग कुकी खोज करने के लिए होना चाहिए।
  • आप फ़ील्ड लेबल, पाठ या कस्टम गुण द्वारा खोज करने के लिए तर्क बदल सकते हैं।
22/07/2009 को 08:02
का स्रोत उपयोगकर्ता

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