Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
Log.i("frag", "onCreate");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
setHasOptionsMenu(true);
final View view = inflater.inflate(R.layout.fragment_initiate_chat, container, false);
bindViews(view);
setUpClickListener();
setUpCategories(view);
return view;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
//menu.clear();
inflater.inflate(R.menu.menu_inititate_chat, menu);
Log.i("frag", "onCreateOptionsMenu");
//super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Log.i("frag", "onOptionsItemSelected");
final int itemId = item.getItemId();
switch (itemId) {
case R.id.send:
sendIssue();
break;
}
return super.onOptionsItemSelected(item);
}
Я не могу установить меню для своего фрагмента. Я использовал setHasOptionsMenu (true); но это все равно не имеет значения.Невозможно установить меню для фрагмента
My layout xml layout.
<LinearLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bgGrey"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:navigationIcon="@drawable/ic_close_black_24dp"
app:popupTheme="@style/Theme.AppCompat.NoActionBar"
app:titleTextColor="@color/toolbarTextColor" />
<Spinner
android:id="@+id/categories"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>`
Пункт меню menu_inititate_chat.xml
`<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/send"
android:orderInCategory="100"
android:title="@string/send"
android:icon="@drawable/send"
app:showAsAction="always" />
</menu>`
Активность, которая содержит этот фрагмент не включал панель инструментов самостоятельно.
Стандартное меню опций работает только на 'ActionBar', или поддержки версии их. Если вы хотите, чтобы меню отображалось на произвольной «Панели инструментов», вам придется поместить его туда сами. Ознакомьтесь с методами 'Toolbar # inflateMenu()' и 'Toolbar # setOnMenuItemClickListener()'. –
@MikeM. да, это был тот, который вы могли бы написать так же, как ответ, поэтому я могу отметить его правильно. –