2013-08-07 2 views
4

Есть ли способ установить ToggleButton в ActionBar и получить его, чтобы сохранить, в каком состоянии он находится, поэтому, когда вы снова открываете ту же активность, он находится в том же состоянии, в котором вы его оставили?Android Toggle Button в ActionBar

Extra: Если возможно есть андроид 2.3.3 - 2.3.7 обратная совместимость

ответ

0

Вы можете использовать ActionBar.setCustomView() и передать его Switch или ToggleButton, хотя я не знаю, если это будет работать вместе с другими ActionBar навигации режимы. Что касается сохранения этого значения, просто сохраните его состояние проверки в SharedPreferences и установите его снова при создании Activity.

Что касается обратной совместимости, у вас есть два варианта: библиотека ActionBarSherlock или новый v7 support library Google.

1

Сначала определим макет, который содержит ваш Переключите:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <ToggleButton 
    android:id="@+id/actionbar_service_toggle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textOn="Logging On" 
    android:textOff="Logging Off" /> 
</RelativeLayout> 

Тогда у вас есть два варианта для продолжения:

с использованием layoput действия:

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
     android:id="@+id/myswitch" 
     android:title="" 
     android:showAsAction="always" 
     android:actionLayout="@layout/actionbar_service_toggle" /> 
</menu> 

Раздувание программно: В вашей деятельности или Фрагмент вы:

ActionBar actionBar = getSupportActionBar(); 
actionBar.setCustomView(R.layout.actionbar_top); 
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_CUSTOM); 
... 
ToggleButton button = (ToggleButton) findViewById(R.id.actionbar_service_toggle);