Меню опций не отображается в ICS с использованием библиотеки совместимости
Вопрос
Я не могу получить меню «Параметры», чтобы показать в фрагменте в 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.