android - Android 代码中的 NullPointerException

标签 android nullpointerexception

错误是:

java.lang.NullPointerException.onCreateOptionsMenu(AddMyMarketsActivity.java:44)

我的代码是:

41 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
42          SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
43          SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();       
44          searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
            Log.i("searchView", "set searchable configuration for searchView ");

我的代码可能有什么问题?

最佳答案

如果您使用 androids 支持库来显示您的操作栏,请确保您在 SearchView 声明中使用正确的 actionViewClass。

应该是 app:actionViewClass="android.support.v7.widget.SearchView"

之后,您可以将其用作尝试获取 ActionView 的代码的替代品:

MenuItem searchItem = menu.findItem(R.id.search_view);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);

请务必在调用此函数之前调用 getMenuInfalter().inflate(...)。

更多信息:http://developer.android.com/guide/topics/ui/actionbar.html#ActionView

关于android - Android 代码中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14517551/

相关文章:

c# - Xamarin Android 数据绑定(bind)与 MVVM Light

java - JFrame 错误 java.lang.nullpointerException

android - 创建 PendingIntent 时的空指针

java - 分类时Weka nullPointerException

android - ListView 隐藏了 EditText

java - 在 Java (Android) 中运行 javascript 文件

android - 以 mm/yy 格式格式化到期日期

android 9-patch 渐变

JavaFx - TextField.setText() 抛出 nullpointerException

java - 为什么 Double.parseDouble(null) 和 Integer.parseInt(null) 抛出不同的异常?