5

Я получаю ошибку «Метод getSupportActionBar() не определено для типа MainActivity»ActionBarCompat в FragmentActivty

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

Когда приложение использует getSupportActionBar(), ваша деятельность должна распространяться от ActionBarActivity. Он определен в пакете поддержки, который вы уже добавили, как я вижу в вашем импорте.

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

Ваш класс должен расширяет ActionBarActivity. Из-за ActionBarActivity простирается от FragmentActivity, вы можете использовать Фрагменты.

+0

Правильный ответ в соответствии с API android API – zest

Смежные вопросы