首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ActionBarActivity与SearchView

ActionBarActivity与SearchView
EN

Stack Overflow用户
提问于 2014-10-10 23:27:56
回答 2查看 1.3K关注 0票数 0

在从Activity扩展的活动中,我有一个使用search的工作搜索实现

代码语言:javascript
运行
复制
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.search_results, menu);

    SearchManager searchManager = 
            (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = 
            (SearchView) menu.findItem(R.id.action_search).getActionView();

    if(null!=searchManager) {
        searchView.setSearchableInfo(
                searchManager.getSearchableInfo(getComponentName()));
    }
    return true;
}

当将活动更改为扩展ActionBarActivity时,我得到了这个空指针:

代码语言:javascript
运行
复制
10-10 15:51:49.044: E/AndroidRuntime(19406): java.lang.NullPointerException
10-10 15:51:49.044: E/AndroidRuntime(19406):    at com.example.myapp.SearchResultsActivity.onCreateOptionsMenu(SearchResultsActivity.java:114)
10-10 15:51:49.044: E/AndroidRuntime(19406):    at android.app.Activity.onCreatePanelMenu(Activity.java:2546)
10-10 15:51:49.044: E/AndroidRuntime(19406):    at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:224)
10-10 15:51:49.044: E/AndroidRuntime(19406):    at android.support.v7.app.ActionBarActivity.superOnCreatePanelMenu(ActionBarActivity.java:232)
10-10 15:51:49.044: E/AndroidRuntime(19406):    at android.support.v7.app.ActionBarActivityDelegateICS.onCreatePanelMenu(ActionBarActivityDelegateICS.java:146)
10-10 15:51:49.044: E/AndroidRuntime(19406):    at android.support.v7.app.ActionBarActivity.onCreatePanelMenu(ActionBarActivity.java:199)
10-10 15:51:49.044: E/AndroidRuntime(19406):    at android.support.v7.app.ActionBarActivityDelegateICS$WindowCallbackWrapper.onCreatePanelMenu(ActionBarActivityDelegateICS.java:293)
10-10 15:51:49.044: E/AndroidRuntime(19406):    at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:436)

在我的应用程序中,我确实有其他的ActionBarActivities非常完美地工作(尽管没有使用搜索小部件),并且我做了一个干净的项目,没有结果。为什么在这种情况下我会得到这个空指针?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-10 23:53:32

对于ActionBarActivity,您需要按照操作栏操作视图指南使用MenuItemCompat.getActionProvider()android.support.v7.widget.SearchView (而不是框架SearchView)。

票数 1
EN

Stack Overflow用户

发布于 2015-03-02 22:43:05

下面是上面提到的完全解

您必须在从OnQueryTextListener获得的searchView上设置MenuItemCompat,然后使用从侦听器传递给您的搜索词打开活动。测试和工程

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

https://stackoverflow.com/questions/26309438

复制
相关文章

相似问题

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