【发布时间】:2014-01-15 00:53:22
【问题描述】:
首先,我设置actionBar的代码。 (使用默认系统actionBar,android 4.2+)
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.listing_group, menu);
MenuItem listItem = menu.findItem(R.id.action_list);
ToggleButton customActionIcon = (ToggleButton) getLayoutInflater().inflate(R.layout.custom_action_bar_icon_view, null);
listItem.setActionView(customActionIcon);
customActionIcon.setTextOff("LIST");
customActionIcon.setTextOn("LIST");
customActionIcon.setTypeface(OswaldRegular());
customActionIcon= (ToggleButton)getLayoutInflater().inflate(R.layout.custom_action_bar_icon_view, null);
customActionIcon.setTextOff("MAP");
customActionIcon.setTextOn("MAP");
customActionIcon.setTypeface(OswaldRegular());
MenuItem mapItem = menu.findItem(R.id.action_map);
mapItem.setActionView(customActionIcon);
return super.onCreateOptionsMenu(menu);
}
菜单的布局xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_list"
android:showAsAction="always"
/>
<item
android:id="@+id/action_map"
android:showAsAction="always"/>
</menu>
自定义actionBar按钮的布局xml:
<?xml version="1.0" encoding="utf-8"?>
<ToggleButton xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/action_bar_toggle_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:background="@color/transparent"
android:textColor="@drawable/listing_group_activity_actionbar_text_color_selector">
</ToggleButton>
问题:
当带有此操作栏的屏幕首次加载时,两个按钮都以取消选择的颜色显示,但它们都显示默认文本“关闭”。当我单击其中一个时,它们会正确更改颜色并将文本更改为我在 onCreateOptionsMenu() 中设置的文本。即,一个变成 LIST,一个变成 MAP。然后它们继续保持这种状态并像普通的 ToggleButtons 一样发挥作用。我希望他们从显示正确的文本开始,在修复之后我希望默认选择其中一个。
非常感谢您对此事的任何帮助!谢谢!
【问题讨论】:
标签: android android-actionbar togglebutton