2

onCreateOptionsMenu を使用して、アクション バーの Sherlock メニューをフラグメントで表示しています。リストがnullの場合はメニューを無効にし、存在する場合は有効にし、メニューのいくつかのオプションを変更するという要件があります。これは私のコードです

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    if ((list != null && list.size() > 0)
            || (response != null && response.messageInfo != null && response.messageInfo
                    .size() > 0)) {
        SubMenu submenus = menu.addSubMenu("");
        submenus.add(1, 1, 1, "Send New Message");
        submenus.add(1, 2, 2, "Filter by Category");
        MenuItem subitem = submenus.getItem();
        subitem.setIcon(R.drawable.img_sorting);
        subitem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    } else {
        menu.add(1, 10, 10, "NOT Clickable").setIcon(R.drawable.img_hide)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    }
}

したがって、ここで初めてロードすると、リストが表示されていても無効になり、リフレッシュしてもプロパティが変更されないまで無効になります。

4

1 に答える 1

5

Sherlock を使用している場合は、呼び出してみてくださいsupportInvalidateOptionsMenu();。それ以外の場合invalidateOptionsMenu();は、ネイティブで試してみてくださいActionBar

于 2013-07-08T08:05:13.490 に答える