通訊錄模糊匹配

2021-07-24 23:13:22 字數 1105 閱讀 6359

之前自己寫的通訊錄模糊匹配,因為需求改過,**有過修改,所以邏輯可能比較亂,不過已經實現了模糊匹配。包括漢字,拼音,大小寫匹配等。需要的同學可以參考下

實現思路:在edittext中新增監聽 et_search.addtextchangedlistener(new editchangelistener(connectsactivity.this, connectslist, connectsquerylist, adapter));

editchangelistener是自定義的,繼承自textwatcher,用於監聽edittext資料變化。

connectslist是通訊錄資料集合,connectsquerylist是查詢後的符合條件的資料集合,adapter是用於顯示通訊錄資料的介面卡。

我在**中新增了注釋

具體**如下:(這裡只粘出了textwatcher的ontextchanged中的**,主要邏輯都在這個方法中)

@override

public

void ontextchanged(charsequence s, int start, int before, int

count) else

if (character.islowercase(c)) }}

input = sb.tostring();}}

//因為是時時匹配,所以需要將查詢後的資料集合清空

connectsquerylist.clear();

//baseconnects是定義的資料物件,存放姓名,姓名轉化後的拼音(預設已經全部轉化為大寫拼音),**等資訊

for (baseconnects haohan : connectslist)

}}else }}

//下面是模糊匹配核心**

//首先將輸入的字串查分成字元

for (int i = 0; i < input.tochararray().length; i++) else

}break;}}

}} else }}

//重新整理資料

adapter.notifydatasetchanged();

}

單鏈表通訊錄 通訊錄2 0

單鏈表通訊錄 通訊錄2.0 標頭檔案 ifndef address h define address h include include include define success 10000 define failure 10001 define true 10002 define false ...

通訊錄問題

include using namespace std include include typedef struct lnodelnode,linklist 通訊錄的建立 void createlist l linklist l,int n createlist l 通訊者結點的插入 void li...

靜態通訊錄

這個通訊錄存粹用到c的知識就可以,主要就是乙個聯絡人資訊結構體,再就是乙個結構體陣列,對結構體陣列反覆操作 進行增 刪 查 改 排序 由於是初學者還不能對中文名進行排序 清空寫等功能。在這裡我們可以盡量寫的正式一點 所以我們用contact.h頭檔案建立結構體和對函式進行宣告 conteact.c中...