在一个类中,我给动作栏充气以找到一个项目然后我返回super.oncreatemenuoptions(菜单)然后在另一个类中我只使用menu.finditem ...在onCreateMenuOptions方法中没有膨胀因为当我充气它再次创建了两个项目。它在Api 15和16上工作正常,但只要我尝试在第二个类中使用该项,android 4.2.2就会抛出一个空指针异常。它崩溃的手机是三星Galaxy s4。三星有固件问题吗?通过在我的代码中检查api,有没有呢? 第1类:
@Override
public boolean onCreateOptionsMenu(Menu menu)
Menuinflater inflater= getMenuInflater();
inflated.inflate (R.menu.actionbar, menu);
MenuItem item= menu.findItem(R.id.search);
return super.onCreateOptionsMenu(menu);
第2课:
@Override
public void onCreateOptionsMenu (Menu menu,MenuInflater inflater) {
SearchView SearchView = (SearchView) menu.findItem (R.id.search).getActionView();
}
答案 0 :(得分:0)
您可以通过此行在代码中实际获取设备的sdk构建版本值。 " Integer.valueOf(android.os.Build.VERSION.SDK);" 你可以通过这条线获得释放构建版本。 " String androidOS = Build.VERSION.RELEASE;" 但是,我不明白为什么你需要知道这个版本。 我认为问题出在您的Sdk上。尝试使用更新的SDK和更新的IDE。或者尝试创建一个新项目并复制该新项目中的所有类。 我希望这会对你有所帮助。
答案 1 :(得分:0)
我通过将菜单文件夹xml中的搜索视图android:showAsAction从“ifroom”更改为“always”来修复它。同时将searchView.setOnQueryTextListener(this)从onCreateView移动到onCreateOptionsMenu但现在当我这样做时它不会在旧设备上工作,反之亦然当我将它移回...我认为这是api 19或更新api的错误什么的。