Android 菜单选项动态变化
生活随笔
收集整理的這篇文章主要介紹了
Android 菜单选项动态变化
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最近項目中要用到一個東東: 點擊菜單要根據(jù)狀態(tài)來顯示選項。
最初采用的是onCreateOptionsmenu,return false的話,基本你在menu里面執(zhí)行了添加item的操作,那么也會沒反應(yīng)的, 只有在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;
}
調(diào)用onPrepareOptionsMenu
在調(diào)用這個方法的時候有必要注意一點,每次調(diào)用之前都先調(diào)用下menu.clear,或者直接更新里面的元素,不然每次都次點擊menu菜單都會添加2個item.
最初采用的是onCreateOptionsmenu,return false的話,基本你在menu里面執(zhí)行了添加item的操作,那么也會沒反應(yīng)的, 只有在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;
}
調(diào)用onPrepareOptionsMenu
在調(diào)用這個方法的時候有必要注意一點,每次調(diào)用之前都先調(diào)用下menu.clear,或者直接更新里面的元素,不然每次都次點擊menu菜單都會添加2個item.
轉(zhuǎn)載于:https://blog.51cto.com/whatandroid/754207
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Android 菜单选项动态变化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8个神奇的网页动态流体布局及其做法揭秘
- 下一篇: 明天就是2012