0
我想在較低Android版本中獲得MenuItem。此代碼在Android 4.0.3中正常工作:在較低Android版本中獲取MenuItem
_menu.findItem(R.id.menu_item).setVisible(true);
但是該應用程序在Android 2.3.6中崩潰。它拋出一個NullPointerException。
如何在較低的Android版本中使用它?
我想在較低Android版本中獲得MenuItem。此代碼在Android 4.0.3中正常工作:在較低Android版本中獲取MenuItem
_menu.findItem(R.id.menu_item).setVisible(true);
但是該應用程序在Android 2.3.6中崩潰。它拋出一個NullPointerException。
如何在較低的Android版本中使用它?
我的代碼是工作的8的minSdkVersion,並沒有任何問題
對於片段:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_result_search, menu);
MenuItem saveItem = menu.findItem(R.id.save_item);
saveItem.setVisible(false);
}
對於活動:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.menu_detail, menu);
MenuItem upIconActionBar = menu.findItem(R.id.menu_up);
upIconActionBar.setVisible(false);
}
我保存菜單中的對象作爲變量。它應該在onCreateOptionsMenu之外。 – JavaForAndroid
我在2.3.3 android手機上的onCreateOptionsMenu外部測試,它工作正常,沒有崩潰 MenuItem save = mMenu.findItem(R.id.save_item); \t save.setVisible(false); – nirvik
從Android開發人員文檔: 如果您已開發Android 2.3.x或更低版本的應用程序,系統會在用戶第一次打開菜單時調用onCreateOptionsMenu()創建選項菜單。如果您開發的是Android 3.0及更高版本,則系統會在開始活動時調用onCreateOptionsMenu(),以便將項目顯示到操作欄。 在第一次打開它之前,確保你沒有試圖訪問2.3.3上的菜單! – nirvik