3

ここでは Android への noob から、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

ユーザーがスペース OR / AND 小文字の「x」を使用して、可能な一致のリストを表示するかどうかを無視したい

したがって、ユーザーが入力した場合、W 16xまたはW16 xそのw16両方 がオートコンプリート候補リストに表示されます->1->2

4

1 に答える 1

2

あなたはコーダーなので、正しい道をたどります...これはあなたの例に書かれたものではなく、Java/AndroidのRegExの一般的な例です。

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 ;)
        */
    }
});
于 2011-04-17T09:35:21.327 に答える