ActionBar(支持)与片段(支持)

我需要在我的一个Android应用程序的目标姜饼也使用操作栏和片段的组合。 所以我使用了v7支持库中的操作栏和v4支持库中的片段,并使用FragmentActivity扩展了我的类。

当我input该行时,出现错误

actionbar = getSupportActionBar(); 

错误状态getSupportActionBar()是未定义typesmyFragmentClass (我的class级名称)。 代码工作完美,没有支持库。 有没有解决我的问题?

谢谢!

Solutions Collecting From Web of "ActionBar(支持)与片段(支持)"

您必须扩展ActionBarActivity而不是FragmentActivity以使Actionbar具有片段。

如果您使用的是v7 appcompat库,则您的活动应该扩展ActionBarActivity,它是FragmentActivity的子类(有关更多信息,请参阅添加操作栏)。

您可以在下面的页面find更多的信息。上面的行取自下面的页面(最后一段)。 http://developer.android.com/training/basics/fragments/creating.html

编辑 – 这不是一个错误。 它只是缺乏知识。 有时基本不清楚。 我现在正在从android网站上学习,这就是我给你的答案。

在OnAttach()方法中写下这段代码:

 actionBar = ((ActionBarActivity) getActivity()).getSupportActionBar(); 

ActionBarActivity已被弃用。 使用

actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();

我也试过使用:

 actionbar = getActivity().getSupportActionBar(); 

直到我这样做才有效果:

 ActionBar actionBar = ((ActionBarActivity)getActivity()).getSupportActionBar(); 

所以当我投向我的MainActivity时,它工作。

android.support.v7

 ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar(); //than next for example actionBar.setDisplayHomeAsUpEnabled(true); 

要调用片段内的ActionBar,请使用以下命令:

 actionbar = getActivity().getSupportActionBar(); 

片段没有ActionBar,但活动。 这就是为什么你必须这样称呼它。

我已经通过扩展ActionBarActivity来尝试它,并在AndroidManifest.xml中进行一些更改

  <activity android:name="yourActionbarActivity" 

机器人:主题= “@风格/ Theme.AppCompat.Light”>

对我来说工作正常

无需在任何地方做任何更改,只需在使用FragmentActivity时使用getActionBar().setTitle(title)而不是getSupportActionBar 。 这对我来说工作得很好。