5

我收到错误“未为 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 哪个更好?

4

2 回答 2

8

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

于 2013-09-05T11:22:31.430 回答
4

当应用程序使用getSupportActionBar()您的活动时,必须从ActionBarActivity. 它是在您已经添加的支持包中定义的,正如我在您的导入中看到的那样。

public class MainActivity extends ActionBarActivity
                          implements ActionBar.TabListener {
    // your code goes here
}
于 2013-08-01T10:03:42.187 回答