2013-08-07 4 views
4

Y at-il un moyen de mettre un ToggleButton dans le ActionBar et l'obtenir pour enregistrer dans quel état il est, donc quand vous ouvrez la même activité, il est dans le même état que vous l'avez quitté?Android Toggle Button dans ActionBar

supplémentaire: Si possible avez android 2.3.3 - 2.3.7 rétrocompatibilité

Répondre

0

Vous pouvez utiliser ActionBar.setCustomView() et passer un Switch ou ToggleButton, bien que je ne sais pas si cela va travailler aux côtés d'autres navigation ActionBar modes. Pour sauvegarder cette valeur, il suffit de stocker l'état vérifié dans SharedPreferences et de le redéfinir lors de la création de l'activité. En ce qui concerne la rétrocompatibilité, vous avez deux options: la bibliothèque ActionBarSherlock ou la nouvelle version v7 support library de Google.

1

d'abord définir une mise en page qui contient votre bascule:

<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> 

Ensuite, vous avez deux possibilités de procéder:

Utilisation d'une action 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> 

Gonfler par programme: que vous faites dans votre Activité ou Fragment:

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);