我正在创建一个包含2个片段的活动。我正在为每个片段实现不同的菜单项。但我遇到了问题。我的错误顺序:
在我经过片段2并返回片段1之前,我的ActionBar图标未显示。什么可以是我的错误?谢谢
片段1
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_listado, container, false);
declararObjetos();
iniciarBaseDatos();
sonidos();
cargarLocalizacion();
reiniciarListview();
pintarElementos();
setHasOptionsMenu(true);
Modulo.getOverflowMenu(getActivity());
ActivityCompat.invalidateOptionsMenu((Activity) context);
return rootView;
}
public void onPrepareOptionsMenu(Menu menu) {
menuItemActualizarLista = menu.findItem(R.id.menuOpcActualizarLista);
menuItemBuscar = menu.findItem(R.id.menuOpcBuscar);
menuItemActualizarLista.setVisible(true);
menuItemBuscar.setVisible(true);
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menuOpcActualizarLista:
reiniciarListview();
return true;
case R.id.menuOpcBuscar:
cargarBuscar();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
菜单
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menuOpcActualizarLista"
android:visible="false"/>
<item
android:id="@+id/menuOpcBuscar"
android:icon="@drawable/icono_lupa"
android:visible="false"
android:showAsAction="always" />
</menu>
答案 0 :(得分:1)
您需要为菜单充气,以便展示它。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.myMenu, menu);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Modulo.getOverflowMenu(getActivity());
ActivityCompat.invalidateOptionsMenu(getActivity());
}