在从Activity
扩展的活动中,我有一个使用search的工作搜索实现
@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
时,我得到了这个空指针:
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非常完美地工作(尽管没有使用搜索小部件),并且我做了一个干净的项目,没有结果。为什么在这种情况下我会得到这个空指针?
发布于 2014-10-10 23:53:32
对于ActionBarActivity
,您需要按照操作栏操作视图指南使用MenuItemCompat.getActionProvider()和android.support.v7.widget.SearchView (而不是框架SearchView)。
发布于 2015-03-02 22:43:05
下面是上面提到的完全解
您必须在从OnQueryTextListener获得的searchView上设置MenuItemCompat,然后使用从侦听器传递给您的搜索词打开活动。测试和工程
https://stackoverflow.com/questions/26309438
复制相似问题