Android AutoCompleteTextView с регулярным выражением? - PullRequest
2 голосов
/ 17 апреля 2011

noob для Android здесь, начиная с iOS, .Net до этого, C и Fortran, прежде чем все это.

Если у меня есть 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 16xили W16 x или w16 оба ->1 и ->2 появятся в списке предложений автозаполнения.

1 Ответ

1 голос
/ 17 апреля 2011

Поскольку вы кодер, я укажу вам правильный путь ... это не записано в вашем примере, а скорее общий пример RegEx в 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 ;)
        */
    }
});
...