2014-01-14 2 views
0

Во-первых, мой код для настройки actionBar. (Использование системы по умолчанию ActionBar, андроид 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); 
    } 

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

Layout XML для кнопки пользовательских ActionBar:

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

Исправлено. Это. Если бы сделать customActionIcon.setChecked (true) для включенного и setChecked (false) для отключенного, и они начинаются с правильного текстового и правого состояния

Смежные вопросы