1

我正在使用带有选项卡的操作栏。我需要根据选项卡选择更改操作栏项目和标题。我可以更改标题,但我无法更改项目的图标。

因为 actionBar.setTitle() 是默认方法。就像图标和项目更改没有默认方法..Action Bar可以在Activity而不是Fragment中使用..如何处理这种情况?请帮我

我正在使用下面的代码..

公共类 ActionBarActivity 扩展 Activity{

public static Context context;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.actionbar);
    ActionBar actionBar = getActionBar();
    actionBar.setTitle("Action Bar");
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.show();



    ActionBar.Tab aTab = actionBar.newTab().setText("A");
    ActionBar.Tab bTab = actionBar.newTab().setText("B");
    ActionBar.Tab cTab = actionBar.newTab().setText("C");

    Fragment aFragment = new aActivity();
    Fragment bFragment = new bActivity();
    Fragment bFragment = new cActivity();

    aTab .setTabListener(new MyTabsListener(aFragment));
    bTab.setTabListener(new MyTabsListener(bFragment));
    cTab.setTabListener(new MyTabsListener(cFragment));

    actionBar.addTab(aTab );
    actionBar.addTab(bTab);
    actionBar.addTab(cTab);


}

@Override
 public boolean onCreateOptionsMenu(Menu menu) {
  MenuInflater menuInflater = getMenuInflater();
        menuInflater.inflate(R.menu.menu, menu);
        return super.onCreateOptionsMenu(menu);

 }
4

2 回答 2

2
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

actionBar.setTitle("Meeting");
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowCustomEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);

/* Set Custom view */
ActionBar.Tab tab = actionBar.newTab();
// tab.setText("Meeting Users");
tab.setIcon(R.drawable.users);
tab.setTabListener(this);
actionBar.addTab(tab);

tab = actionBar.newTab();
// tab.setText("Chat");
tab.setIcon(R.drawable.chat);
tab.setTabListener(this);
actionBar.addTab(tab);

tab = actionBar.newTab();
// tab.setText("Video");
tab.setIcon(R.drawable.video_call);
tab.setTabListener(this);
tab.select();
actionBar.addTab(tab);

tab = actionBar.newTab();
// tab.setText("Extra");
tab.setIcon(R.drawable.extra);
tab.setTabListener(this);
actionBar.addTab(tab);

现在为您的标签使用自定义视图

  ActionBar.Tab tab = getSupportActionBar().newTab();
  tab.setCustomView(R.layout.custom_tab_view);

https://gist.github.com/3167287

http://actionbarsherlock.com/

于 2012-11-29T04:48:15.283 回答
1
http://developer.android.com/guide/topics/manifest/application-element.html#logo

android:logo 整个应用程序的标志,以及活动的默认标志。此属性必须设置为对包含图像的可绘制资源的引用(例如“@drawable/logo”)。没有默认徽标。

如果您的操作栏像 Sherlock 一样工作并且基于菜单项,这是我的解决方案:

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    MenuItem switchButton = menu.findItem(R.id.SwitchSearchOption);     
    if(searchScriptDisplayed){
        switchButton.setIcon(R.drawable.menu_precedent);
    }else{
        switchButton.setIcon(R.drawable.icon_search);
    }
    return super.onPrepareOptionsMenu(menu);

}
于 2012-11-29T05:17:04.970 回答