Android AutoCompleteTextView使用正则表达式?

3

我是一名新手,之前使用过iOS和.Net技术,在此之前还学过C和Fortran。

如果我有一个包含1000多个字符串的ArrayAdapter,我该如何修改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
1个回答

2

既然您是一名程序员,我将为您指引正确的方向……这并不是针对您的示例编写的,而是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 ;)
        */
    }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接