Example #1
0
  private List<ContactSortModel> queryData(String groupname) {
    // mSortList = new ArrayList<SortModel>();
    if (mContactList == null) {
      mContactList = new ArrayList<ContactSortModel>();
    } else {
      mContactList.clear();
    }

    List<Roster> rosters = getRosters(groupname);

    if (mIsContact) {
      ContactSortModel sm1 = new ContactSortModel();
      Roster roster = new Roster();
      roster.setAlias("添加好友");
      sm1.setRoster(roster);
      sm1.setSortLetters("@");
      mContactList.add(sm1);

      ContactSortModel sm2 = new ContactSortModel();
      Roster roster2 = new Roster();
      roster2.setAlias("新朋友");
      sm2.setRoster(roster2);
      sm2.setSortLetters("@");
      mContactList.add(sm2);
    }

    for (int i = 0; i < rosters.size(); i++) {
      ContactSortModel sortModel = new ContactSortModel();

      sortModel.setRoster(rosters.get(i));
      // 取roster的alias昵称,并将汉字转换成拼音
      String pinyin = mCharacterParser.getSelling(rosters.get(i).getAlias());
      String sortString = pinyin.substring(0, 1).toUpperCase();

      // 正则表达式,判断首字母是否是英文字母
      if (sortString.matches("[A-Z]")) {
        sortModel.setSortLetters(sortString.toUpperCase());
      } else {
        sortModel.setSortLetters("#");
      }

      mContactList.add(sortModel);
    }

    return filterData(mFilterString, mContactList);
  }