I have a MenuItem
which I want to make it visible when only ChatListFragment
of the FragmentTabHost
is selected:
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:id="@+id/action_start_chat"
android:icon="@drawable/ic_add_black_48dp"
android:title="@string/action_bar_add_text"
app:showAsAction="always"
android:visible="true"/>
</menu>
So I am making it invisable in MainActivity:
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
this.menu = menu;
addChatItem = menu.findItem(R.id.action_start_chat);
addChatItem.setVisible(false);
return super.onCreateOptionsMenu(menu);
}
It is invisable in LoginFragment
as I want but I can't make it visible again from ChatListFragment
using public metod of the MainActivity
:
MainActivity:
public void setAddChatVisibility(boolean visible) {
addChatItem.setVisible(visible);
invalidateOptionsMenu();
supportInvalidateOptionsMenu();
}
ChatListFragment:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_conversation, container, false);
mainActivity = (MainActivity) getActivity();
mainActivity.setAddChatVisibility(true);
return view;
}
How can I do that? Thanks in advance.