首先,我的代码用于设置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那样运作。我希望他们从正确的文本显示开始,然后修复后我希望默认选择其中一个。
非常感谢有关此事的任何帮助!谢谢!
答案 0 :(得分:0)
固定。它。必须为已启用的一个执行customActionIcon.setChecked(true),对于禁用的一个执行setChecked(false),并且它们以正确的文本和正确的状态开始