0

手動でインテントを使用してイベントをトリガーすると、正常に機能するサポートアクションバーがあります。しかし、それを呼び出すためにタブホストに任せた場合、getSupportActionbar()から返されるアクションバーはnullになります。

これは別の質問でStackで参照されていると聞きましたが、誰も提供して回答していません。(どうやらそれはAndroid 3以降でのみ発生します)。誰かアイデアはありますか?

私のタブホスト:

public class NavTab extends TabActivity {

    TabHost tabHost;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tab);

        Resources res = getResources(); // Resource object to get Drawables
        TabHost tabHost = getTabHost();  // The activity TabHost
        TabHost.TabSpec spec;  // Resusable TabSpec for each tab
        Intent intent;  // Reusable Intent for each tab

        // Initialize a TabSpec for each tab and add it to the TabHost
        intent = new Intent().setClass(this, SummaryPage.class);
        spec = tabHost.newTabSpec("Summary");
        spec.setIndicator("Account", getResources().getDrawable(R.drawable.tab_icon_summary));
        spec.setContent(intent);
        tabHost.addTab(spec);

        //Feedback
        intent = new Intent().setClass(this, FeedbackPage.class);
        spec = tabHost.newTabSpec("Feedback");
        spec.setIndicator("Feedback", getResources().getDrawable(R.drawable.tab_icon_summary));
        spec.setContent(intent);
        tabHost.addTab(spec);

        //Payment Locations
        intent = new Intent().setClass(this, PaymentLocationsActivity.class);
        spec = tabHost.newTabSpec("Payment Locations");
        spec.setIndicator("Pay Loc", getResources().getDrawable(R.drawable.tab_icon_summary));
        spec.setContent(intent);
        tabHost.addTab(spec);

        //Usage Alert
        intent = new Intent().setClass(this, UsageAlertPage.class);
        spec = tabHost.newTabSpec("Usage Alerts");
        spec.setIndicator("Alerts", getResources().getDrawable(R.drawable.tab_icon_summary));
        spec.setContent(intent);
        tabHost.addTab(spec);

        tabHost.setCurrentTab(1);

    }


}

私の活動

public class PageWithActionBar extends SherlockActivity implements ActionBar.OnNavigationListener {

    private static String TAG = "mymeter-Main";
    private List<Account> accounts = new LinkedList<Account>();
    private LocationAdapter locationAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);


        ActionBar actionBar = getSupportActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
        actionBar.setDisplayShowTitleEnabled(false);

        accounts.add(new Account("123456789", "4-15 Rose Rd", "Auckland 1021"));
        accounts.add(new Account("0987654321", "49 Ronaki Rd", "Auckland 1043"));
        locationAdapter = new LocationAdapter(this, accounts);
        actionBar.setListNavigationCallbacks(locationAdapter, this);


    }
}
4

1 に答える 1

2

TabActivityを拡張する必要がSherlockActivityあります。タブのActionBarSherlockサンプルを確認してください。

于 2012-11-19T04:31:30.957 に答える