-1

actionbarsherlock を使用してアプリに 4 つのタブを持つ 3 つのメニュー項目があります。最初はすべてのメニュー項目を表示していますが、タブを変更すると 2 つの項目が非表示になりますが、どういうわけか機能しません。以下は私のコードです

final static int action_refresh = 0;
    final static int facebook = 1;
    final static int twitter = 2;
    final static int in = 3;

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
       _menuInstance = menu;
        menu.add(1, facebook, 1, "facebook").setIcon(R.drawable.facebook).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
        menu.add(1, twitter, 2, "twitter").setIcon(R.drawable.twitter).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
        menu.add(1, in, 3, "in Disk").setIcon(R.drawable.in).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

        return true;


    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {

        case facebook:
             Toast.makeText(this, "Connect on facebook", Toast.LENGTH_SHORT).show();

            return true;
        case twitter:
         Toast.makeText(this, "Connect on twitter", Toast.LENGTH_SHORT).show();

           return true;
        case in:
             Toast.makeText(this, "Connect on Linkedin", Toast.LENGTH_SHORT).show();

              return true;

        default:
            return super.onOptionsItemSelected(item);
        }
    }
    @Override
    public void onTabChanged(int pageIndex, ActionBar.Tab tab, View tabView) {
        resetVisibilityFields();
        if (_menuInstance == null) {
            hideAllActionItems(_menuInstance);

            switch (pageIndex) {
                case 0:
                    showFirstTabActionItems(_menuInstance);
                    break;

                case 1:
                    showSecondTabActionItems(_menuInstance);
                    break;

                case 2:
                    showThirdTabActionItems(_menuInstance);
                    break;

                case 3:
                    showFourthTabActionItems(_menuInstance);
                    break;
            }
        }
    }

以下のように、最初のタブのアイコンを非表示にしようとしています

 private void showFirstTabActionItems(Menu menu) {
        if (menu != null && menu.size() == 2) {

             menu.getItem(1).setVisible(false);
             menu.getItem(3).setVisible(false);


            _firstTabShowed = true;
        }
    }

しかし、それは機能していません。どんな助けでも大歓迎です。

4

1 に答える 1