2017-08-29 129 views
1

我有菜单项中的片段一款Android menuItem.setIcon的menuItem.setIcon做工精细的第一次,但是当我加入片段B(不能代替),并返回到片段A,该menuItem.setIcon不工作了!不能正常工作,每次

这里是我的片段A码的buttonClicked方法工作完全之前,我添加片段B和回片段的

private MenuItem menuItem; 

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.menu_main, menu); 
    menuItem = menu.findItem(R.id.action_item); 
    super.onCreateOptionsMenu(menu, inflater); 
} 


public void buttonClicked() { 
    if (condition) 
     menuItem.setIcon(getResources().getDrawable(R.drawable.ic_action)); 
    else 
     menuItem.setIcon(getResources().getDrawable(R.drawable.ic_action_checked)); 
} 

任何好吗?谢谢

+0

我认为你是在onCreateView(),当你去back.if要再次重新并设置图标要么你在设定的onResume图标()方法或更换您的片段,而不是添加的是没有得到所谓的设置你的图标它在片段事务中。更多信息请查看片段的生命周期。 –

+0

你在onCreateOptionsMenu方法中设置menuItem.setIcon? –

+0

@sunilkushwah我设置图标,当我点击一个按钮,并且我需要添加第二个片段而不是替换第一个 – Abdel

回答

0

你需要调用Activity.invalidateOptionsMenu();进行任何菜单更改。