2011-04-17 25 views
2

noob to Android here,來自iOS,.Net之前,C和Fortran之前的一切。具有正則表達式的Android AutoCompleteTextView?

如果我有一個ArrayAdapter,它有大約1000多個字符串,我如何修改AutoCompleteTextView(或MultiAutoCompleteTextView或任何派生類),以便可以使用正則表達式修改字符串的匹配條件。

它很容易用簡單的例子就明白了:

ArrayAdapter的

典型的內容:

W 20 x 100 
W 16 x 89 -> 1 
W 16 x 15 -> 2 
WT 8 x 44 
C 9 

我想忽略是否有或沒有用戶使用空間或/和小寫的「x」呈現可能的匹配的名單

所以,如果用戶鍵入W 16xW16 xw16兩者->1->2將顯示在自動完成sugge stion列表。

回答

1

既然你是一名編碼員,我會讓你走上正確的道路......這不是寫給你的例子,而是寫在Java/Android中的正規例子。

protected ArrayList<String> splitMsg(SmsMessage smsMessage) { 
     ArrayList<String> smt; 
     Pattern p = Pattern.compile(".{1,160}"); 
     Matcher regexMatcher = p.matcher(smsMessage.getMsgBody()); 
     smt = new ArrayList<String>(); 
     while (regexMatcher.find()) { 
      smt.add(regexMatcher.group()); 
     } 
     return smt; 
    } 

有沒有驗證,所以你必須實現:

smsMsgBody_editText.addTextChangedListener(new TextWatcher() { 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     /* 
     * Do something fancy like regex match ;) 
     */ 
    } 
});