onCreateMenuOptions 在较新的 Apis 上有所不同?

onCreateMenuOptions differ on newer Apis?

在一个 class 中,我膨胀操作栏以找到一个项目,然后我 return super.oncreatemenuoptions(菜单)然后在另一个 class 我只是使用 menu.finditem... 在 onCreateMenuOptions 方法中没有膨胀,因为当我再次膨胀它时,创建了两个项目。它在 Api 15 和 16 上工作正常,但每当我尝试在第二个 class 中使用该项目时,android 4.2.2 会抛出一个空指针异常。 phone 它崩溃的是 Samsung Galaxy s4。三星有固件问题吗?通过检查我的代码中的 api 是否可以解决这个问题? Class1:

@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);

Class 2:

 @Override
public void onCreateOptionsMenu (Menu menu,MenuInflater inflater) {
SearchView SearchView = (SearchView) menu.findItem (R.id.search).getActionView();
}

您可以通过此行在您的代码中实用地获取设备的 sdk 构建版本值。 "Integer.valueOf(android.os.Build.VERSION.SDK);" 你可以通过这条线获得发布版本。 "String androidOS = Build.VERSION.RELEASE;" 但是,我不明白为什么你需要知道版本。 我认为问题出在您 Sdk.Try 使用更新的 SDK 和更新 IDE.Or 尝试创建一个新项目并复制该新项目中的所有 类 。 希望对您有所帮助。

我通过将菜单文件夹 xml 中的搜索视图 android:showAsAction 从 "ifroom" 更改为 "always." 来修复它,同时移动 searchView.setOnQueryTextListener(this)从 onCreateView 到 onCreateOptionsMenu 但现在当我这样做时它不会在旧设备上工作,反之亦然当我将它移回时......我认为这是 api 19 或更高版本 apis 的错误什么的。