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;
}
}
しかし、それは機能していません。どんな助けでも大歓迎です。