我的应用程序必须在菜单中显示一个选项,具体取决于用户的权限。在运行时添加选项菜单Android
菜单中的项目是这样的:
<item
android:id="@+id/action_waittime"
android:visible="false"
android:orderInCategory="100"
android:title="@string/action_waittime"
app:showAsAction="never"/>
,并在活动推出后,将默认为禁用。然后在oncreate()I IQ请求完成:
mConnection.subscribeIQResponseFromNamespace(this, NAMESPACE);
WaitTimeIQ waitTimeIQ = new WaitTimeIQ();
//waitTimeIQ.setFrom(mConnection.getUser());
try {
waitTimeIQ.setTo(JidCreate.from("chvcomponent.chv.cat"));
} catch (XmppStringprepException e) {
e.printStackTrace();
}
waitTimeIQ.setType(IQ.Type.get);
mConnection.sendIQMessage(waitTimeIQ);
之后,我会收到权限答案。如果答复是“授予”,我必须显示选项。
我这样做:
public void activeOption(string autho) {
if (autho.equals("granted")) {
Menu mMenu = mToolbar.getMenu();
mMenu.getItem(R.id.action_waittime).setVisible(true);
invalidateOptionsMenu();
}
}
但是,它不会刷新,而不是显示。
我该如何设法使其可见?
谢谢,它的工作,只是一些配置,这是因为'onCreateOptionsMenu(菜单菜单)'调用前的反应可以到达。所以我必须验证'activeOption(..)'中是否有'menu!= null',并且如果是这样,则激活一个标记,以执行onCreateOptionsMenu()。只是为了允许如果respnse在打印到期之前或之后到达,服务器滞后。再次感谢! – Shudy