有没有办法将ToggleButton放在ActionBar中并让它保存它所处的状态,所以当你再次打开相同的活动时它会处于和你离开时相同的状态?
额外: 如果可能的话有android 2.3.3 - 2.3.7向后兼容性
答案 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()
并将其传递给Switch
或ToggleButton
,但我不知道这是否会与其他ActionBar导航模式一起使用。至于保存这个值,只需在SharedPreferences中存储它的已检查状态,并在创建Activity时再次设置它。
至于向后兼容性,您有两种选择:ActionBarSherlock库或Google的新v7 support library。