【问题标题】:AutoCompleteTextView don't filter text inside of bracketsAutoCompleteTextView 不过滤括号内的文本
【发布时间】:2023-04-07 20:33:01
【问题描述】:

我已经为 AutoCompleteTextView 编写了如下代码

AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteText);
    String[] countries = getResources().getStringArray(R.array.contries_array);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.my_list_item,countries);
    autoCompleteTextView.setAdapter(adapter);
    autoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String item = parent.getItemAtPosition(position).toString();
            Toast.makeText(getApplicationContext(),"Selected item is :"+item ,Toast.LENGTH_SHORT).show();
        }
    });

我提供的数组列表是

<string-array name="contries_array">
    <item>Afganistan</item>
    <item>Canada</item>
    <item>India</item>
    <item>New Zee Land</item>
    <item>New Yourk</item>
    <item>Africa</item>
    <item>228(BRAZIL_STATION-AIRPORT)</item>
    <item>228(AIRPORT-BRAZIL_STATION)</item>
    <item>228A(BRAZIL_STATION-LA)</item>
</string-array>

当我搜索“af”或“in”或“22”时它工作正常,然后显示过滤列表,但当我搜索“br”时,我希望它显示最后三个选项过滤后的数组。但它没有显示,当我搜索“22”时它只显示这三个选项。

帮帮我,提前谢谢

【问题讨论】:

标签: android autocompletetextview


【解决方案1】:

ArrayAdapters 过滤器的默认实现是搜索单词的开头(以空格分隔)。您将需要实现一个使用 contains

的过滤器

this source底部ArrayFilter的实现

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    相关资源
    最近更新 更多