Meine App muss eine Option im Menü anzeigen, je nach der Erlaubnis des Benutzers.Option hinzufügen Menü auf Runtime Android
das Element im Menü ist wie:
<item
android:id="@+id/action_waittime"
android:visible="false"
android:orderInCategory="100"
android:title="@string/action_waittime"
app:showAsAction="never"/>
und wenn die Aktivität starten, standardmäßig deaktiviert sein. Dann in oncreate() I IQ Anfrage ist fertig:
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);
Danach werde ich die Erlaubnis Antwort erhalten. Wenn die Antwort "gewährt" ist, muss ich die Option anzeigen.
ich dies tun:
public void activeOption(string autho) {
if (autho.equals("granted")) {
Menu mMenu = mToolbar.getMenu();
mMenu.getItem(R.id.action_waittime).setVisible(true);
invalidateOptionsMenu();
}
}
Aber, es ist nicht aufgefrischt wird und nicht gezeigt.
Wie kann ich es sichtbar machen?
Danke, es hat funktioniert, nur mit einigen Konfigurationen, da die Antwort ankommen kann, bevor das 'onCreateOptionsMenu (Menü Menü)' aufgerufen wird. also musste ich validieren, ob 'menu! = null 'in' activeOption (..) 'ist und ein Flag aktivieren, wenn es so ist, um' onCreateOptionsMenu() 'zu tun. Nur um zu erlauben, ob ein Erscheinen vor oder nach dem Drucken fällig ist, Server Lag. Danke noch einmal! – Shudy