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中提取类和资源,但这并不是那么简单