Android 菜单选项动态变化
生活随笔
收集整理的這篇文章主要介紹了
Android 菜单选项动态变化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近項目中要用到一個東東: 點擊菜單要根據狀態來顯示選項。
最初采用的是onCreateOptionsmenu,return false的話,基本你在menu里面執行了添加item的操作,那么也會沒反應的, 只有在return true的情況下,你添加的菜單項才會突顯出來.
so,如何解決呢?
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
// MenuInflater inflater = getMenuInflater();
// inflater.inflate(R.menu.menu_main, menu);
menu.clear();//must clear first in onPrepareOptionsMenu
if(loginSuccess)
{
Log.e("", "login success");
menu.add(0, 0, 0, "注銷");
menu.add(0, 1, 0, "退出");
}
else
{
Log.e("", "do not login");
menu.add(0, 0, 0, "注冊");
menu.add(0, 1, 0, "登陸");
menu.add(0, 2, 0, "退出");
}
return true;
}
調用onPrepareOptionsMenu
在調用這個方法的時候有必要注意一點,每次調用之前都先調用下menu.clear,或者直接更新里面的元素,不然每次都次點擊menu菜單都會添加2個item.
最初采用的是onCreateOptionsmenu,return false的話,基本你在menu里面執行了添加item的操作,那么也會沒反應的, 只有在return true的情況下,你添加的菜單項才會突顯出來.
so,如何解決呢?
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
// MenuInflater inflater = getMenuInflater();
// inflater.inflate(R.menu.menu_main, menu);
menu.clear();//must clear first in onPrepareOptionsMenu
if(loginSuccess)
{
Log.e("", "login success");
menu.add(0, 0, 0, "注銷");
menu.add(0, 1, 0, "退出");
}
else
{
Log.e("", "do not login");
menu.add(0, 0, 0, "注冊");
menu.add(0, 1, 0, "登陸");
menu.add(0, 2, 0, "退出");
}
return true;
}
調用onPrepareOptionsMenu
在調用這個方法的時候有必要注意一點,每次調用之前都先調用下menu.clear,或者直接更新里面的元素,不然每次都次點擊menu菜單都會添加2個item.
轉載于:https://blog.51cto.com/whatandroid/754207
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Android 菜单选项动态变化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8个神奇的网页动态流体布局及其做法揭秘
- 下一篇: android sina oauth2.