Diacritics/international characters in AutoCompleteTextView

前端 未结 8 2188
耶瑟儿~
耶瑟儿~ 2021-02-15 17:02

I have a (array) list

Car
Something
Šibica
Čavao
Cavao

Is there a way to \"force\" AutoCompleteTextView so if user type in letter \"c\"

8条回答
  •  耶瑟儿~
    2021-02-15 17:08

    svenkapudija's answer is good...I used it and modified slightly just to ensure that the diacritics filter would work for other than first word

                            final String[] words = valText.split(" ");
                            for (String word : words) {
                                if (word.startsWith(prefixString)||toNoPalatals(word).startsWith(prefixStringNoPalatals)) {
                                    newValues.add(value);
                                    break;
                                }
                            }
                        }
    

    Also, this is for people from Czech Republic ;-)

        original = original.replace("Ě", "E");
        original = original.replace("Š", "S");
        original = original.replace("Č", "C");
        original = original.replace("Ř", "R");
        original = original.replace("Ž", "Z");
        original = original.replace("Ý", "Y");
        original = original.replace("Á", "A");
        original = original.replace("Í", "I");
        original = original.replace("É", "E");
        original = original.replace("Ú", "U");
        original = original.replace("Ů", "U");
        original = original.replace("Ď", "D");
        original = original.replace("Ť", "T");
        original = original.replace("Ň", "N");
    
        original = original.replace("ě", "e");
        original = original.replace("š", "s");
        original = original.replace("č", "c");
        original = original.replace("ř", "r");
        original = original.replace("ž", "z");
        original = original.replace("ý", "y");
        original = original.replace("á", "a");
        original = original.replace("í", "i");
        original = original.replace("é", "e");
        original = original.replace("ú", "u");
        original = original.replace("ů", "u");
        original = original.replace("ď", "d");
        original = original.replace("ť", "t");
        original = original.replace("ň", "n");
    

提交回复
热议问题