有没有办法在 ActionBar 中放置一个 ToggleButton 并让它保存它所处的状态,所以当你再次打开同一个活动时,它与你离开它时的状态相同?
额外:如果可能的话,具有 android 2.3.3 - 2.3.7 向后兼容性
有没有办法在 ActionBar 中放置一个 ToggleButton 并让它保存它所处的状态,所以当你再次打开同一个活动时,它与你离开它时的状态相同?
额外:如果可能的话,具有 android 2.3.3 - 2.3.7 向后兼容性
首先定义一个包含您的切换的布局:
<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>
以编程方式膨胀: 在您的Activity或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);
您可以使用ActionBar.setCustomView()
并传递一个Switch
or ToggleButton
,但我不知道这是否可以与其他 ActionBar 导航模式一起使用。至于保存这个值,只需将它的选中状态存储在 SharedPreferences 中,并在创建 Activity 时再次设置它。
至于向后兼容性,您有两种选择:ActionBarSherlock库,或 Google 的新v7 支持库。