5

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

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

4

2 回答 2

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>

然后,您有两种选择可以继续:

使用动作布局:

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

以编程方式膨胀: 在您的ActivityFragment中,您可以:

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);
于 2014-12-05T19:17:02.260 回答
0

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

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

于 2013-08-07T20:09:57.793 回答