Меню опций не отображается в ICS с использованием библиотеки совместимости

StackOverflow https://stackoverflow.com/questions/8346064

Вопрос

Я не могу получить меню «Параметры», чтобы показать в фрагменте в ICS в проекте, который использует библиотеку Android-Support-V4.jar. Я тестирую на телефоне Galaxy Nexus.

Мы не используем панель действий, и нужно, чтобы приложение было 2,2+ совместимым. Мы не видим ни одного меню вариантов в деятельности в ICS (фрагментируемость не поддерживает OncreateOptionsMenu)

Я могу получить меню, работающие в предыдущей версии Android - у меня есть все правильные структуры, чтобы включить меню «Параметры» (как показано ниже), но ничто не показывает в ICS. При прохождении кода, он не вызывается. Кто -нибудь может предложить исправление?

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

public class SuperFragment extends Fragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        setHasOptionsMenu(true);
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.display_options_actions, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()) {
            case R.id.menu_sign_in:
                break;
            case R.id.menu_sign_out:
                break;
        }
        return true;
    }
    // ...
}

Версия Target OS в файле Manifest:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="14"/>
Это было полезно?

Решение

Удаление android:targetSdkVersion="14" Из манифеста снова включает кнопку «Параметры» снова.

Это потому, что у меня была тема @android:style/Theme.Black.NoTitleBar Указано в моем манифесте - с Android: TargetSdkversion 14, меню «Параметры» вставляется в меню панели действий, в отличие от кнопки меню «Параметры» в панели кнопки внизу экрана, и тема удаляет деятельность Название и бар -бар.

Стержень действия можно удалить, хотя я не уверен, что это решит проблему, так как я еще не заставил ее работать, чтобы она совместима между версиями 2.2 - 4.

Другие советы

Просто измените Android: TargetSdkversion с «14» на «10» (меньше 11), и эта проблема будет решена.

<uses-sdk android:minSdkVersion="3" 
      android:targetSdkVersion="10" />

Согласно Android CDD, отсечение нового поведения, не показывающего меню опции, является TargetSdkversion> 10. Ваши варианты должны либо запустить ваше приложение в режиме устаревшего с помощью TargetSdkversion <= 10, либо адаптируйте ваше приложение к новым рекомендациям (например, добавить Кнопка меню в вашем приложении или используйте панель действий). Обратите внимание, что вам не нужно увеличивать версию целевой сборки (свойства проекта в Eclipse), чтобы увеличить TargetSdkversion.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top