1

タブ付きのアクションバーを使用しています。タブの選択に応じてアクションバーのアイテムとタイトルを変更する必要があります。タイトルは変更できますが、アイテムのアイコンを変更できません。

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);

 }
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 に答える