Как показать значки в меню переполнения ActionBar?

Вы можете передать ссылку на первый объект следующим образом:

class normalClass {
    protected $superObject;
    public function __construct(superClass $obj) {
        $this->superObject = $obj;
    }

    public function someMethod() { 
        //this method shall access the doSomething method from superClass
        $this->superObject->doSomething();  
    }
}

class superClass {
    public function __construct() {
          //provide normalClass with a reference to ourself
          $inst = new normalClass($this);
          $inst->someMethod();
    }
    public function doSomething() {
          //this method shall be be accessed by domeMethod form normalClass
    }
}
23
задан Alexey Zakharov 16 August 2012 в 07:51
поделиться

3 ответа

Может быть, у тебя та же проблема, что и у меня. Поэтому для меня решение было простым, если вы используете AppCompat, просто не используйте это свойство:

android:showAsAction="always"

вместо этого используйте его так:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/option"
        android:title="@string/option"
        android:icon="@drawable/option"
        app:showAsAction="always">
    </item>
</menu> 

Существует разница в дополнительном xmlns : app и showAsAction является свойством app .

Надеюсь, это кому-нибудь поможет.

3
ответ дан HugoMasterPL 16 August 2012 в 07:51
поделиться
@Override
public boolean onMenuOpened(int featureId, Menu menu)
{
    if(featureId == Window.FEATURE_ACTION_BAR && menu != null){
        if(menu.getClass().getSimpleName().equals("MenuBuilder")){
            try{
                Method m = menu.getClass().getDeclaredMethod(
                    "setOptionalIconsVisible", Boolean.TYPE);
                m.setAccessible(true);
                m.invoke(menu, true);
            }
            catch(NoSuchMethodException e){
                Log.e(TAG, "onMenuOpened", e);
            }
            catch(Exception e){
                throw new RuntimeException(e);
            }
        }
    }
    return super.onMenuOpened(featureId, menu);
}

Ссылка: Как отображать значки в меню переполнения в ActionBar

2
ответ дан Community 16 August 2012 в 07:51
поделиться

поместите ваше меню со свойством android:showAsAction="always" и в xml-файл меню добавьте подменю, под которым ваше меню выглядит следующим образом

<item
        android:id="@+id/mainMenu"
        android:icon="@drawable/launcher"
        android:showAsAction="always">
        <menu>

            <item
                android:id="@+id/menu_logout"
                android:icon="@drawable/log_out"
                android:title="logout"/>
        </menu>
    </item>

, в меню будут отображаться значки

32
ответ дан Chintan Khetiya 16 August 2012 в 07:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: