FragmentActivity中的ActionBarCompat

时间:2013-08-01 09:59:40

标签: android android-support-library android-actionbar-compat

我收到错误 “对于类型MainActivity”

,方法getSupportActionBar()未定义
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBar.Tab;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
public class MainActivity extends FragmentActivity implements ActionBar.TabListener {

AppSectionsPagerAdapter mAppSectionsPagerAdapter;

ViewPager mViewPager;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    mAppSectionsPagerAdapter = new AppSectionsPagerAdapter(getSupportFragmentManager());


    final ActionBar actionBar = getSupportActionBar();


    //actionBar.setHomeButtonEnabled(false);


    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);


    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mAppSectionsPagerAdapter);
    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {

            actionBar.setSelectedNavigationItem(position);
        }
    });

    for (int i = 0; i < mAppSectionsPagerAdapter.getCount(); i++) {
        actionBar.addTab(
                actionBar.newTab()
                        .setText(mAppSectionsPagerAdapter.getPageTitle(i))
                        .setTabListener(this));
    }
}
.
.
.
}

请帮帮我。 setHomeButtonEnabled()是否支持?

哪个更好ActionBarCompat或ActionBarSherlock?

2 个答案:

答案 0 :(得分:8)

您的课程需要扩展 ActionBarActivity 。 由于 ActionBarActivity FragmentActivity 扩展,您可以使用碎片。

答案 1 :(得分:4)

当应用程序使用getSupportActionBar()时,您的活动必须从ActionBarActivity延伸。它在您已添加的支持包中定义,我可以在您的导入中看到。

public class MainActivity extends ActionBarActivity
                          implements ActionBar.TabListener {
    // your code goes here
}