Переключатель ActionBarSherlock

Я пытаюсь включить главный переключатель на панели действий, и мне не повезло. Кто-нибудь может сказать мне, что я делаю неправильно? Спасибо.

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:id="@+id/menu_item_action_provider_action_bar"> 
<Switch android:id="@+id/monitored_switch" 
            android:text="Monitored switch" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:showAsAction = "always" /> 
</item> 
</menu>

а также

public boolean onCreateOptionsMenu(Menu menu) { 
    super.onCreateOptionsMenu(menu); 
    getSupportMenuInflater().inflate(R.menu.menu, menu); 
    return true; 
} 

Я уверен, что меню создается и отображается, потому что, если я добавлю другие элементы, они отобразятся. Просто не тумблер. И я тестирую AVD с 4.0.3 и мой телефон с 4.0.4


person n388mm    schedule 15.04.2012    source источник


Ответы (3)


Вы можете добавить собственное представление в меню панели действий с помощью action view.

person Josh    schedule 02.07.2012

Попробуй это..

public boolean onCreateOptionsMenu(Menu menu) { 
    getSupportMenuInflater().inflate(R.menu.menu, menu); 
    return(super.onCreateOptionsMenu(menu)); 
} 

Не знаю, изменит ли это что-то для вас, но попробовать стоит :)

person chuckliddell0    schedule 20.04.2012
comment
Спасибо за ответ! Я действительно понял, что я искал. В итоге вы не можете добавить переключатели в меню. Поэтому я добавил переключатель в относительный макет .xml и добавил его на панель действий: View toggle = LayoutInflater.from(this).inflate(R.layout.locate_toggle, null); getSupportActionBar().setCustomView(toggle); getSupportActionBar().setDisplayShowCustomEnabled(true); - person n388mm; 23.04.2012

Кстати, зачем использовать ActionBar Sherlock, если вы используете переключатель? появился переключатель с API 14, которому не нужен фреймворк совместимости :) (мне просто интересно)

person Climbatize    schedule 01.06.2012
comment
Вероятно, это не причина этого парня, но, возможно, вы захотите показать переключатель включения/выключения в API 14+, а в более низких API вместо этого установите флажок (проверив сборку во время выполнения). - person Josh; 02.07.2012
comment
Да, я могу это понять, я столкнулся с проблемой несколько недель назад :) - person Climbatize; 26.07.2012
comment
@Josh Зачем использовать флажок? Виджет Switch был обратно портирован на API 7. Я мог бы рекомендовать замену нативной реализации на ненативную, но в остальном он работает безупречно. github.com/Tombarr/android-switch-backport - person Tom; 18.10.2012
comment
Спасибо за ссылку, Том, хороший порт. Пользователи с более низкими API не будут ожидать изменений в своих приложениях, вот и все. Некоторые разработчики предпочли бы, чтобы их приложения выглядели одинаково на всех платформах, в то время как некоторые предпочитают, чтобы их приложения выглядели так же, как другие приложения на телефоне пользователя (которые, вероятно, будут иметь флажки). - person Josh; 19.10.2012