之前自己寫的通訊錄模糊匹配,因為需求改過,**有過修改,所以邏輯可能比較亂,不過已經實現了模糊匹配。包括漢字,拼音,大小寫匹配等。需要的同學可以參考下
實現思路:在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中...