2014-01-14 39 views
0

首先,我設置了動作條代碼。 (使用默認的系統動作條,安卓4.2+)ToggleButtons作爲actionBar自定義視圖行爲怪異。

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

佈局的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> 

問題:

當與此動作條第一負載屏幕s,這兩個按鈕都顯示爲取消選擇的顏色,但它們都顯示默認文本「關」。當我點擊其中的一個時,它們正確地更改顏色,並將文本更改爲我在onCreateOptionsMenu()中設置的文本。即一個變成LIST,一個變成MAP。然後他們繼續保持這種方式,並像普通的ToggleButtons一樣運作。我希望他們從顯示正確的文本開始,並在此之後修復,我希望默認情況下選擇其中一個。

對此事的任何幫助,非常感謝!謝謝!

回答

0

固定。它。必須爲殘疾人一個啓用一個和setChecked(假)做customActionIcon.setChecked(真),他們開始用正確的文本,右狀態