2013-01-23 26 views
0

我建立一個應用程序,應更換默認的電話本,我想增加對搜索的搜索欄聯繫人的姓名。如何避免不同字母的情況下(A,E,I,O,U)的搜索模式 - Android電子

現在我有我自己的數據庫中的所有聯繫人和持續追蹤的EDITTEXT任何變化TextWatcher - 然後建立與字符序列的查詢用戶輸入。 這是工作正常,我得到所有聯繫人的用戶搜索像所有的聯繫人都以「a」開頭。 現在我想添加一項新功能來忽略特殊字母,如:á,é,í,ó,ú。

我希望用戶可以鍵入a,並仍然獲取所有以e和其他所有字母相同的聯繫人開頭的 。

有沒有辦法在查詢本身做這個或有是Java/Android的給我們完成的東西。

謝謝。

回答

4

您可以使用java.text.Normalizer剝離口音。

String strippedAccent = Normalizer.normalize(someText, Normalizer.Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+", ""); 

F你想在查詢中使用它,你應該添加一個字段到包含搜索文本的簡裝版本的數據庫。

+0

感謝您的回答。你知道sqlite是否有解決方案,除了增加另一個領域? –

+0

不是我所知道的。 sqlite有一個collat​​e操作符,但它非常簡單。它只能用來做不區分大小寫的比較 – bwt

0

This change工作是相當不錯的nubdial。這也相當快。

相關問題