ActionBar中的Android Toggle Button

时间:2013-08-07 20:01:48

标签: android android-actionbar android-menu togglebutton

有没有办法将ToggleButton放在ActionBar中并让它保存它所处的状态,所以当你再次打开相同的活动时它会处于和你离开时相同的状态?

额外: 如果可能的话有android 2.3.3 - 2.3.7向后兼容性

2 个答案:

答案 0 :(得分:2)

首先定义一个包含切换的布局

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

答案 1 :(得分:0)

您可以使用ActionBar.setCustomView()并将其传递给SwitchToggleButton,但我不知道这是否会与其他ActionBar导航模式一起使用。至于保存这个值,只需在SharedPreferences中存储它的已检查状态,并在创建Activity时再次设置它。

至于向后兼容性,您有两种选择:ActionBarSherlock库或Google的新v7 support library