簡體   English   中英

Android操作欄菜單項

[英]Android actionbar menu item

我的操作欄中有一個項目菜單(排序列表),我必須將其可見性設置為VISIBLE / GONE(取決於列表大小 - >是否為空)。

所以我需要的是檢查listview是否為空並相應地設置該菜單項的可見性,我設法想出一些代碼(檢查onCreateOptionsMenu中的listview大小並設置菜單項可見性),但是問題是列表可以從相同的活動或從另一個活動更改其內容,讓我沒有選項(IMO),而不是再次檢查列表視圖大小並在onResume()中設置visiblity。

下一個問題是:在onResume()中設置該項的可見性,將拋出一個NPE,因為我還沒有初始化MenuItem(在onResume之后調用onCreateOptionsMenu)。 如何解決這種情況的任何想法將不勝感激。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);

    getSupportMenuInflater().inflate(R.menu.main, menu);

    /*
     * initialize sortMenuItem so it can be used for turning visibility
     * on/off in onResume()
     */
    sortMenuItem = menu.findItem(R.id.menu_sort);

    return true;
}

@Override
public void onResume() {
    super.onResume();

    boolean isListEmpty = mInterviewsList.isEmpty();

    Log.d(LOG_TAG, "sortMenuItem is null? " + (sortMenuItem == null)); 
            // sortMenuItem is indeed null

    sortMenuItem.setVisible(isListEmpty);
    sortMenuItem.setEnabled(!isListEmpty);
    this.invalidateOptionsMenu();

}

您可以在onCreateOptionsMenu中動態添加sortMenuItem,具體取決於您的列表視圖大小,如果您使用(google ActionBar compat lib)或類似方法,則可以在onResume中調用supportInvalidateOptionsMenu()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM