Вызов метода mActionBar=getActionBar() дает ошибку

Я использую библиотеку поддержки android.support.v7.app.actionbar, потому что мне нужна панель действий в api level 8 и выше. Но следующее предложение выдает мне ошибку, например, изменить mActionBar на ActionBar

mActionBar=getActionBar();

Моя FragmentActivity, в которой я не использую вкладку ActionBar, выглядит следующим образом

import com.example.bottomtabadapter.TabPageAdapter;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBar.Tab;
import android.support.v7.app.ActionBarActivity;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.view.Menu;

public class TabFragmentActivity extends FragmentActivity implements ActionBar.TabListener{

private ViewPager mViewPager;
private ActionBar mActionBar;
private TabPageAdapter mAdapter;

private String[] tabs={"Chat","Groups","Contacts"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tab_fragment);

    mViewPager=(ViewPager)findViewById(R.id.pager);
    mActionBar=getActionBar();  // here is the error
    mAdapter=new TabPageAdapter(getSupportFragmentManager());

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.tab, menu);
    return true;
}

@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
    // TODO Auto-generated method stub

}

@Override
public void onTabSelected(Tab arg0, FragmentTransaction arg1) {
    // TODO Auto-generated method stub

}

@Override
public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {
    // TODO Auto-generated method stub

}

}


person HemangNirmal    schedule 15.02.2014    source источник
comment
developer.android.com/reference/android/support/v7/ app/ прежде чем спросить прочитайте его   -  person Selvin    schedule 15.02.2014
comment
вы продлили активность или вкладку   -  person rajshree    schedule 15.02.2014
comment
я думаю, что это не ошибка времени выполнения, а ошибка времени компиляции... ActionBar из библиотеки поддержки! = оригинальный ActionBar   -  person Selvin    schedule 15.02.2014
comment
если вы не можете ответить на вопрос, пожалуйста, не понижайте оценку за этот вопрос   -  person HemangNirmal    schedule 15.02.2014
comment
@Selvin Я думаю, что этот вопрос не следует помечать как не по теме, потому что в конце концов он был решен. Я согласен с тем, что найти основную причину было бы проще с опубликованной трассировкой стека logcat.   -  person donfuxx    schedule 22.02.2014
comment
HemangNirmal, Kai duniya ma che bhai tu?   -  person NSPratik    schedule 06.10.2015
comment
А таро вопрос не по теме кем каре че локо??   -  person NSPratik    schedule 06.10.2015


Ответы (2)


Если вы хотите иметь панель действий для старых устройств с API 7 и выше, возможно, вам следует расширить ActionBarActiviy.

person donfuxx    schedule 15.02.2014
comment
мой класс расширяет FragmentActivity и реализует ActionBar.TabListener - person HemangNirmal; 15.02.2014
comment
Вы можете просто расширить ActionBarActivity вместо FragmentActivity. Не должно быть проблем, поскольку ActionBarActivity расширяет FragmentActivity, см. документацию. - person donfuxx; 15.02.2014
comment
Я просто расширяю ActionBarActivity, и теперь это работает. Спасибо... - person HemangNirmal; 17.02.2014
comment
Превосходно! Оказывается, на этот вопрос действительно есть ответ :-) - person donfuxx; 17.02.2014
comment
вы не просто расширили ActionBarActivty, но и изменили getActionBar на getSupportActionBar. - person ConductedClever; 23.07.2014

попробуйте этот код для пряников. Не забудьте добавить поддерживаемую библиотеку

public class NavigationActivity extends ActionBarActivity {


    ActionBarActivity activity;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.slide_screen);


         activity=(ActionBarActivity) Context.getApplicationContext();

        ActionBar actionBar = getSupportActionBar();

}
person skyshine    schedule 15.02.2014
comment
Я пробую ActionBar actionBar = getSupportActionBar(); но это также дает мне ошибку - person HemangNirmal; 15.02.2014
comment
вы добавили поддерживаемую библиотеку. проверьте ее в пути сборки - person skyshine; 15.02.2014
comment
@HemangNirmal измените его на это - android.support.v7.app.ActionBar actionaBar = getSupportActionBar(); - person Sarthak Majithia; 12.06.2015