2014-05-09 105 views
0

我已經使用xml設置了操作欄按鈕,但是我想使用java代碼設置圖標,因爲我希望圖標可以更改。如何通過Java代碼設置操作欄按鈕圖標

我想在onCreateOptionsMenu()中設置圖標。

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.mymenu, menu); 
    return true; 
} 

回答

1

你第一次使用Menu.findItem()的項目,然後調用MenuItem.setIcon()設置圖標

code:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.mymenu, menu); 
    menu.findItem(R.id.messages).setIcon(R.drawable.ic_action_email); 
    return true; 
} 
+0

抱歉。您的代碼中的「myitem」是什麼? –

+0

@dumidu我編輯了代碼。 –

+0

它的工作。但代碼應該是setIcon(R.drawable.iconid); –

0

通過索引和集合的圖標讓你的菜單項:

menu.getItem(index).setIcon(R.drawable.icon); 

爲前:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.mymenu, menu); 
    menu.getItem(index).setIcon(R.drawable.icon); 
    return true; 
} 
+0

你的意思是呢? menu.getItem(R.id.messages).setIcon(R.drawable.ic_action_email); 但它不工作。它變得部隊封閉。 –

+0

沒有物品ID你需要使用物品的索引。或者嘗試查找功能。 –

+0

findItem函數工作 –