Как открыть OptionsMenu на планшете? - PullRequest
3 голосов
/ 13 января 2012

Я разработал приложение для Android, которое в основном предназначено для смартфонов.Однако в эмуляторе планшета я вижу, что он работает и на Android 3.x.

Однако есть одна небольшая проблема.Пользователь не может открыть OptionsMenu, когда он нажимает на кнопку меню.Как вы знаете на смартфоне меню появляется снизу.Но на планшете ничего не происходит.

Я прочитал это http://developer.android.com/guide/topics/ui/menus.html#options-menu, но все еще не могу понять, как с этим справиться.Мое приложение имеет настраиваемую панель действий.

Мой код довольно прост.В основном действии:

@Override
public boolean onCreateOptionsMenu(Menu men) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.layout.menu, men);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    //...
    }
}

И действие prefs:

public class MdPrefsActivity extends PreferenceActivity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

         getPreferenceManager().setSharedPreferencesName(
                 MdSharedPrefs.PREFS_NAME);
         addPreferencesFromResource(R.xml.prefs);
     }
}

MdSharedPrefs просто содержит несколько методов получения и установки для получения / записи значений pref.идеи, как я могу показать OptionsMenu на планшете?

Ответы [ 2 ]

4 голосов
/ 13 января 2012

Как сказано в документации:

Элементы в меню параметров доступны двумя различными способами: Кнопка MENU или панель действий (на устройствах под управлением Android 3.0 или выше).

[...]

На Android 3.0 и выше элементы из меню параметров помещаются в Панель действий, которая появляется в верхней части действия вместо традиционная строка заголовка. По умолчанию все элементы из меню параметров помещены в меню переполнения, которое пользователь может открыть, нажав значок меню в правой части панели действий. Тем не менее, вы можете Поместите элементы меню выбора непосредственно в панель действий как «элементы действий» для мгновенного доступа [...]

Так что для Android 3.0 или выше вы можете видеть только пунктов меню в ActionBar.

Также важно отметить, что:

Начиная с Android 3.0 (уровень API 11), панель действий включена во всех мероприятиях, которые используют тему Theme.Holo (или один из ее потомки), которая является темой по умолчанию, когда либо Атрибут targetSdkVersion или minSdkVersion имеет значение «11» или более.

Но имейте в виду, что ActionBar отображается только в том случае, если у вас нет приложения или темы деятельности, которая явно скрывает его, например,

android:theme="@android:style/Theme.Holo.NoActionBar"
0 голосов
/ 27 октября 2013

На планшете, без аппаратной кнопки, которую можно использовать для загрузки меню, вам нужно создать две папки в своем res: первая называет его значениями-11, а вторая - значения-14. Внутри этих папок поместите эти стили (styles.xml), которые заменят вашу базовую тему по умолчанию, в папку значений при использовании устройств более высокой версии:

Res / значение-11

<!--
    Base application theme for API 11+. This theme completely replaces
    AppBaseTheme from res/values/styles.xml on API 11+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
    <!-- API 11 theme customizations can go here. -->
</style>

Res / 14-значения

<!--
    Base application theme for API 14+. This theme completely replaces
    AppBaseTheme from BOTH res/values/styles.xml and
    res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <!-- API 14 theme customizations can go here. -->
</style>

...