Android getActionBar没有';无法使用AppCompat库

Android getActionBar没有';无法使用AppCompat库,android,intellij-idea,material-design,android-appcompat,android-actionbar-compat,Android,Intellij Idea,Material Design,Android Appcompat,Android Actionbar Compat,我正在尝试使用intellijidea和appcompatv7库创建一个TabLayout android应用程序 import android.support.v7.app.ActionBar; public class MainActivity extends FragmentActivity implements TabListener { ... private ActionBar actionBar; ... @Override protected void onCreate(Bu

我正在尝试使用
intellijidea
appcompatv7库创建一个TabLayout android应用程序

import android.support.v7.app.ActionBar;

public class MainActivity extends FragmentActivity implements TabListener { 
...
private ActionBar actionBar;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
actionBar = getActionBar(); //Error line
...

}
使用
getActionBar()
时,出现以下错误:

不兼容类型:

必需:android.support.v7.app.ActionBar

找到:android.app.ActionBar

我没有
导入android.app.ActionBar在我的活动中。
我试过:

但我明白了

无法解析方法getActionBar()//或getSupportActionBar()

如何使用appCompat库使用
getActionBar()
?(或者有一个我不知道的替代方案?)

编辑

我还将这一行中的
FragmentActivity
替换为
ActionBarActivity

 public class MainActivity extends FragmentActivity //ActionBarActivity

但是没有运气

坏方法

调用较旧的
导入android.support.v7.app.ActionBar

如果您正在扩展AppCompatActivity/FragmentActivity,那么您正在为较旧的Android版本提供向后支持,为此,您应该使用
getSupportActionBar()

阅读

public class MainActivity extends AppCompatActivity {
  // ...

  ....

 ActionBar actionBar =getSupportActionBar();
}
添加此项。

dependencies {
   // … 
   compile 'com.android.support:appcompat-v7:23.1.0'
}
选中

public class MainActivity extends AppCompatActivity {
  // ...

  ....

 ActionBar actionBar =getSupportActionBar();
}
appcompat活动来自appcompat-v7库。主要是 提供操作栏的后端口。因为本地操作栏是 在API级别11中添加,您不需要AppCompatActivity

对于您的

更改导入

public class MainActivity extends AppCompatActivity {
  // ...

  ....

 ActionBar actionBar =getSupportActionBar();
}
import android.support.v7.app.ActionBar;
代替

import android.app.ActionBar;
和使用

public class MainActivity extends AppCompatActivity {
   // ...
}

首先,您必须扩展
AppCompatActivity
,而不是
FragmentActivity

然后可以使用
getSupportActionBar()

为此,只需导入正确的依赖项:

compile 'com.android.support:appcompat-v7:23.1.1'
但是检查
TabListener
是获取选项卡布局的错误方法,这一点非常重要此接口在API级别21中被弃用。

dependencies {
   // … 
   compile 'com.android.support:appcompat-v7:23.1.0'
}
有了新的设计支持库,现在您可以使用新的

只需将此依赖项添加到您的
build.gradle

compile 'com.android.support:design:23.1.1'
代码非常简单:

TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);
要实现材质设计的许多功能,您应该在 还有一个

大概是这样的:

 <android.support.design.widget.CoordinatorLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         android:layout_width="match_parent"
         android:layout_height="match_parent">


     <android.support.design.widget.AppBarLayout
             android:layout_height="wrap_content"
             android:layout_width="match_parent">

         <android.support.v7.widget.Toolbar
                 ...
                 app:layout_scrollFlags="scroll|enterAlways"/>

         <android.support.design.widget.TabLayout
                 ...
                 app:layout_scrollFlags="scroll|enterAlways"/>

     </android.support.design.widget.AppBarLayout>

     <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

 </android.support.design.widget.CoordinatorLayout>


尝试此操作您可以将FragmentActivity更改为AppCompatActivity并使用getSupportActionBar()?您需要
扩展AppCompatActivity
,然后使用
getSupportActionBar()
@Alex Jolig使用IntelliJ Amiya的答案work@AlexJolig可以您是否编译了com.android.support:appcompat-v7:
是的,我已将库添加到项目中。这就是为什么使用library@AlexJolig您是否在
MainActivity
中导入了
AppCompatActivity
?@MikeM。这就是我错过做这个解决方案的原因。Thanks@AlexJolig没问题,往前走,我做到了。仍然无法使用
AppCompatActivity
compile'com.android.support:appcompat-v7:23.1.1'将此添加到您的内部版本中如果我没有
build.gradle
,请执行以下操作。我用的是Intellij Idea,没有用Gradle。我现在如何编译呢?检查这些链接:否则你必须从aar中提取类和资源,但这并不是那么简单