2010-02-11 166 views

回答

0

有具備開發一個示例應用程序演示此字段的使用的工具。從您的開發人員工具目錄轉到samples/com/rim/samples/device/ui/autocompletefielddemo,您將看到AutoCompleteFieldDemo.java應用程序。

+0

我通過與autocompletefield一部分。我無法做的是在自動填充字段下創建一個列表框,並使用自動填充字段的結果填充列表字段。 任何幫助,將不勝感激 – Taha 2010-02-12 11:13:46

+0

我不知道你的意思 - AutoCompleteField有一個內置的列表下面的輸入字段,顯示當前的結果。爲什麼你需要另一個列表? – 2010-02-12 20:12:28

+0

然後,我應該看看自定義與AutoCompleteField提供的ListField。任何想法如何使它看起來像聯繫人搜索界面。 – Taha 2010-02-17 04:58:45

1

這是代碼以獲得聯繫,則返回包含字符串數組.. 接觸[0]的姓名,聯繫[1]是電子郵件和聯繫人[2]聯繫人號碼..

讀元件的載體從矢量並設置autocompleteField:實施例: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; 
    }