Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将ListView筛选器更改为仅匹配字符串开头_Android - Fatal编程技术网

Android 将ListView筛选器更改为仅匹配字符串开头

Android 将ListView筛选器更改为仅匹配字符串开头,android,Android,我有一个活动,列表视图在顶部显示国家列表和搜索框 我只需要根据输入的文本过滤Listview 使用过滤器,效果很好。除了将输入的字符串与文本上的任何匹配相匹配,要么开始,要么在中间,而我只需要匹配字符串的开始。 例如,如果用户类型为“f”,则显示: 布基纳法索 福克兰群岛 法罗群岛 斐济 芬兰 法国 现在,“布基纳法索”并不是以F开头,它只是因为包含F而显示 如何更改筛选器以仅查找字符串的开头 inputSearch = (EditText) findViewById(R.id.inputSea

我有一个活动,列表视图在顶部显示国家列表和搜索框

我只需要根据输入的文本过滤Listview

使用过滤器,效果很好。除了将输入的字符串与文本上的任何匹配相匹配,要么开始,要么在中间,而我只需要匹配字符串的开始。

例如,如果用户类型为“f”,则显示:

布基纳法索 福克兰群岛 法罗群岛 斐济 芬兰 法国

现在,“布基纳法索”并不是以F开头,它只是因为包含F而显示

如何更改筛选器以仅查找字符串的开头

inputSearch = (EditText) findViewById(R.id.inputSearch);
        inputSearch.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
                // When user changed the Text
                CountryListViewActivity.this.adapter2.getFilter().filter(cs);  
            }

            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                    int arg3) {
                // TODO Auto-generated method stub

            }

            @Override
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub                          
            }
        });

在listadapters筛选器中,使用以下内容实现筛选器方法的匹配部分

if (placeName.toLowerCase().startsWith(filterValue.toLowerCase()) {
    // add it to the result list
}

您当前使用的算法是contains。

下面的链接是否有帮助?它取决于什么是
适配器2
…阵列适配器2@CountryListViewActivity中的user836026。this.adapter2.getFilter().filter(cs),filter(cs)包含什么?@dhams cs是用户键入的搜索字符串。