0

次のようないくつかの前提条件に基づいて、アイコン画像を動的にスワイプするアクションバーがあります。

if(atPosition == null & parentActivity.isLocationFixed())
setActionButton(R.id.menu_plant, R.drawable.ic_menu_plant);
else
setActionButton(R.id.menu_plant, R.drawable.ic_menu_plant_disabled);

setActionButton では、適切なアイテムを見つけてアイコンを設定するだけです。

MenuItem item = menu.findItem(menuId);
item.setIcon(iconRes);

そして今、奇妙なこと: これは、1 つの場所を除くすべてのアプリで機能します。ログに記録しようとしましたが、そのアイコンのIDは正しいです-setIcon()はそのアイコンを設定しません。アイコンリソース、リソースIDも再確認しました(別のアイコンで試しました...)が、何も設定されていません。この動作に影響を与えるキャッシュまたは何かがありますか? 私はそれに腹を立てています:(。

編集 - いくつかのコード: Pastebin 1 - これは動作します Pastebin 2 - これは動作しません

EDIT 2 - setIcon() についてです。setEnabled() を実行しようとすると、機能するので、正しいメニュー項目で呼び出していると確信しています。

4

1 に答える 1

-2

これを使用してください。

        @Override
       public boolean onMenuItemSelected(final int featureId, final android.view.MenuItem item)
       {

           switch (item.getItemId()) {

           case R.id.icon: //menuitem id 

               Drawable iconRes = getDrawable().getResources(R.darawable.new-icon);
               item.setIcon(iconRes);
                       return false;
           }
于 2013-12-26T12:57:06.467 に答える