首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将ArrayAdapter转换为CursorAdapter以便在SearchView中使用

将ArrayAdapter转换为CursorAdapter以便在SearchView中使用
EN

Stack Overflow用户
提问于 2012-07-24 17:43:45
回答 1查看 23.4K关注 0票数 22

如何将静态数据的ArrayAdapter<String>转换为CursorAdapter,以便在SearchView中使用建议侦听器?我已经从静态数据(allString)构造了ArrayAdapter<String>

代码语言:javascript
复制
ArrayAdapter<String> searchAdapter = new ArrayAdapter<String>(context, R.layout.listitem, allString);

我把它用在MultiAutoCompleteTextView上,它在API级别低于11的设备上运行良好。

代码语言:javascript
复制
MultiAutoCompleteTextView findTextView.setAdapter(searchAdapter);

然而,我的目标API是11,对于API>10,我使用了一个ActionBar,我希望在其中有一个SearchView。

下面是我尝试过的内容:它确实显示了带有嵌入式SearchViewActionBar,但没有像在MultiAutoCompleteTextView中那样给出任何建议。

代码语言:javascript
复制
@Override
public boolean onCreateOptionsMenu(Menu menu) {     
        MenuInflater inflater = getMenuInflater();

         if (android.os.Build.VERSION.SDK_INT > 10){
             inflater.inflate(R.menu.menu11, menu);
             searchView = (SearchView) menu.findItem(R.id.MENU_SEARCH).getActionView();
             int[] to = {0};
             CursorAdapter cursorAdapter = new SimpleCursorAdapter(context, R.layout.listitem, null, allBusStopString, to);
             searchView.setSuggestionsAdapter(cursorAdapter);
             searchView.setOnSuggestionListener(new OnSuggestionListener() {

                @Override
                public boolean onSuggestionClick(int position) {
                    String selectedItem = (String)cursorAdapter.getItem(position);
                    Log.v("search view", selectedItem);
                    return false;
                }

                @Override
                public boolean onSuggestionSelect(int position) {
                    return false;
                }
             });  
         }else{
             inflater.inflate(R.menu.menu, menu);
         }

    return true;
}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11628172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档