我不知道如何申報的MenuItem對象,而不是我要求每一個方法的菜單項,所以我的代碼看起來象:如何聲明MenuItem對象調用它每次
private Menu menu;
private void updateMenuIconForWifi(){
MenuItem menuB = menu.findItem(R.id.action_bluetooth);
MenuItem menuItemW = menu.findItem(R.id.action_wifi);
menuB.setVisible(false);
menuItemW.setIcon(R.drawable.ic_network_wifi_black_24dp);
}
private void changeIconToDefaultWifi(){
MenuItem menuB = menu.findItem(R.id.action_bluetooth);
MenuItem menuItemW = menu.findItem(R.id.action_wifi);
menuB.setVisible(true);
menuItemW.setIcon(R.drawable.ic_wifi_white_24dp);
}
private void updateMenuIconForBluetooth() {
MenuItem menuB = menu.findItem(R.id.action_bluetooth);
MenuItem menuItemW = menu.findItem(R.id.action_wifi);
menuItemW.setVisible(false);
menuB.setIcon(R.drawable.ic_bluetooth_connected_black_24dp);
}
private void changeIconToDefaultForBluetooth() {
MenuItem menuB = menu.findItem(R.id.action_bluetooth);
MenuItem menuItemW = menu.findItem(R.id.action_wifi);
menuB.setIcon(R.drawable.ic_bluetooth_white_24dp);
menuItemW.setVisible(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
this.menu = menu;
menuInflater.inflate(R.menu.menu_settings, menu);
for (int j = 0; j < menu.size(); j++) {
MenuItem item = menu.getItem(j);
item.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
return true;
}
但這看起來這麼難看。
如何聲明MenuItems一次?當我嘗試添加像
private MenuItem menuB, menuItemW;
,然後一些值調用這個像onCreate
menuB = menu.findItem(R.id.action_bluetooth);
menuItemW = menu.findItem(R.id.action_wifi);
我得到一個錯誤
您應該使用'onPrepareOptionsMenu(菜單菜單)'。而不是更改菜單上的項目圖標和操作。 –
相關提示:) – Rodriquez