2010-02-11 4 views

Répondre

0

Il y a un exemple d'application fourni avec le développeur des outils qui démontrent l'utilisation de ce champ. À partir de votre répertoire d'outils de développement, allez dans samples/com/rim/samples/device/ui/autocompletefielddemo et vous verrez l'application AutoCompleteFieldDemo.java.

+0

Je suis dans la partie autocompletefield. Ce que je suis incapable de faire est de créer une zone de liste sous le champ de saisie semi-automatique et de remplir le champ de liste avec les résultats du champ de saisie semi-automatique. Toute aide serait la bienvenue – Taha

+0

Je ne suis pas sûr de ce que vous voulez dire - l'AutoCompleteField a une liste intégrée sous le champ de saisie qui montre les résultats actuels. Pourquoi avez-vous besoin d'une autre liste? –

+0

Ensuite, je devrais chercher à personnaliser le ListField fourni avec AutoCompleteField. Toutes les idées pour le faire ressembler à l'interface de recherche de contacts. – Taha

1

C'est le code pour obtenir des contacts, renvoie un vecteur contenant tableau de chaînes .. contacts [0] est le nom, le contact [1] est e-mail et le contact [2] est le numéro de contact ..

lire les éléments du vecteur et mis autocompleteField: Exemple: http://docs.blackberry.com/en/developers/deliverables/18125/Autocomplete_text_field_1200231_11.jsp

private Vector getContacts() { 
     Vector result = new Vector(); 
     try { 
      BlackBerryContactList contactList = (BlackBerryContactList) PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_ONLY); 
      Enumeration enumx = contactList.items(); 
      while (enumx.hasMoreElements()) { 
       BlackBerryContact c = (BlackBerryContact) enumx.nextElement(); 
       String[] contact = new String[3]; 
       if (contactList.isSupportedField(BlackBerryContact.NAME)) { 
        String[] name = c.getStringArray(BlackBerryContact.NAME, 0); 
        String firstName = name[Contact.NAME_GIVEN]; 
        String lastName = name[Contact.NAME_FAMILY]; 
        System.out.println("this is contact..........." + firstName); 
        contact[0] = firstName + " " + lastName; 
       } 
       if (contactList.isSupportedField(BlackBerryContact.EMAIL)) { 
        StringBuffer emails = new StringBuffer(); 
        int emailCount = c.countValues(BlackBerryContact.EMAIL); 
        for (int i = 0; i < emailCount; i++) { 
         String email = c.getString(BlackBerryContact.EMAIL, i); 
         if (email != null) { 
          emails.append(email.trim()); 
          emails.append("; "); 
         } 
        } 
        contact[1] = emails.toString(); 
       } 
       if ((contactList.isSupportedField(BlackBerryContact.TEL)) && (c.countValues(BlackBerryContact.TEL) > 0)) { 
        int numValues = 0; 
        try { 
         numValues = c.countValues(BlackBerryContact.TEL); 
        } catch (Exception localException) { 
        } 
        String mobileNumber = ""; 
        String homeNumber = ""; 
        String workNumber = ""; 
        for (int i = 0; i < numValues; ++i) { 
         if (c.getAttributes(BlackBerryContact.TEL, i) == BlackBerryContact.ATTR_WORK) 
          workNumber = c.getString(BlackBerryContact.TEL, i); 
         else if (c.getAttributes(BlackBerryContact.TEL, i) == BlackBerryContact.ATTR_HOME) 
          homeNumber = c.getString(BlackBerryContact.TEL, i); 
         else if (c.getAttributes(BlackBerryContact.TEL, i) == BlackBerryContact.ATTR_MOBILE) 
          mobileNumber = c.getString(BlackBerryContact.TEL, i); 
        } 
        if (!mobileNumber.equalsIgnoreCase("")) 
         contact[2] = mobileNumber.toString(); 
        else if (!homeNumber.equalsIgnoreCase("")) 
         contact[2] = homeNumber.toString(); 
        else if (!workNumber.equalsIgnoreCase("")) 
         contact[2] = workNumber.toString(); 
       } 
       result.addElement(contact); 
      } 
     } catch (PIMException ex) { 
      ex.printStackTrace(); 
     } 
     return result; 
    } 
Questions connexes