我在这段代码中得到一个NullPointerException。我正在使用Actionbar Sherlock。
searchView.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
Bundle b = new Bundle();
b.putString("query", query);
Intent i = new Intent(getApplicationContext(), RecipeSearchActivity.class);
i.putExtras(b);
startActivity(i);
return true;
}
这是我的LogCat:
11-30 15:32:09.290: E/AndroidRuntime(1837): FATAL EXCEPTION: main
11-30 15:32:09.290: E/AndroidRuntime(1837): java.lang.NullPointerException
11-30 15:32:09.290: E/AndroidRuntime(1837): at com.android.yummly.activities.HomeActivity.onCreateOptionsMenu(HomeActivity.java:32)
我的问题是,什么是尝试传递为null以及为什么?
编辑:这是所请求的菜单XML。
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
<item android:id="@+id/ic_search"
android:orderInCategory="5"
android:title="Search"
android:icon="@drawable/ic_search"
android:showAsAction="ifRoom|collapseActionView"
android:actionLayout="@layout/activity_home"
android:actionViewClass="com.actionbarsherlock.widget.SearchView" />
<item android:id="@+id/ic_favorites"
android:icon="@drawable/ic_favorites"
android:title="@string/ic_favorites"
android:onClick="onClickFavorites"
android:showAsAction="ifRoom"/>
</menu>
答案 0 :(得分:0)
我发现了关于Actionbar Sherlock的消息。只有某些组合适用于searchView
可行的组合: 带有新SearchView的Theme.Sherlock.Light.DarkActionBar(getSupportActionBar()。getThemedContext()) Theme.Sherlock.Light或Theme.Sherlock.Light与新的SearchView(this)
如果你使用主题Theme.Sherlock.Light.DarkActionBar并使用新的SearchView(this)创建视图,它将无法工作。
来源:https://github.com/JakeWharton/ActionBarSherlock/issues/685#issuecomment-13076236
我修复了自己的问题。