Переполнение меню не отображается - Android
В моей деятельности есть панель действий с 3 элементами: "Добавить элемент", "Параметры" и "Переполнение". Элемент добавления установлен так, чтобы всегда быть видимым на панели действий, как и элемент переполнения. Моя проблема с пунктом "Параметры" - я хочу, чтобы он отображался в меню переполнения, но всякий раз, когда я нажимаю на элемент переполнения (значок с 3 точками), он просто ничего не делает. Однако, если я нажимаю кнопку встроенного меню на устройстве, оно показывает мне меню переполнения с моим пунктом Параметры.
Поэтому мой вопрос - почему, когда я нажимаю на значок переполнения, ничего не происходит, но когда я нажимаю кнопку встроенного меню на устройстве, оно показывает мне меню переполнения?
Вот мой код меню XML:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/action_add"
android:icon="@drawable/ic_action_new"
android:showAsAction="ifRoom"
android:title="@string/action_add_ringtone"/>
<item
android:id="@+id/action_set_options"
android:showAsAction="never"
android:title="Options" />
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_action_overflow"
android:orderInCategory="100"
android:showAsAction="always"
android:title="@string/action_settings"/>
</menu>
Вот моя реализация для onOptionsItemSelected:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.action_settings:
return super.onOptionsItemSelected(item);
case R.id.action_add:
pickRingtone(1000);
return true;
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
1 ответ
Вам нужно будет переопределить onCreateOptionsMenu
метод (Ctrl+O
в Android Studio).
@Override
public void onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.your_menu_name, menu);
}
Для фрагмента MenuInflater
будет уже параметром, и вам нужно будет позвонить setHasOptionsMenu(true);
где-то, например, в конце onCreate
также.