2010-02-11 161 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; 
    }