我正在使用带有标签的Actionbar ..我需要根据标签选择更改操作栏项目和标题。我可以更改标题,但我无法更改项目的图标。
因为actionBar.setTitle()是defalut方法。像那样没有图标和项目更改的默认方法..动作栏可以用于活动而不是片段。如何处理这种情况?请帮帮我
使用以下代码..
公共类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);
}
答案 0 :(得分: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);
答案 1 :(得分:1)
http://developer.android.com/guide/topics/manifest/application-element.html#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);
}