我正在尝试使用 Intellij Idea
和 AppCompat v7 库
创建一个 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()
时出现此错误:
Incompatibale types:
Required: android.support.v7.app.ActionBar
Found: android.app.ActionBar
我的 Activity 中没有import android.app.ActionBar;
。
我试过:
actionBar = android.support.v7.app.ActionBar.getActionBar();
和
actionBar = getSupportActionBar();
但是我明白了
Can't resolve method getActionBar() //Or getSupportActionBar()
如何通过 appCompat 库使用 getActionBar()
? (或者可能有一个我不知道的替代方案?)
编辑
我还在这一行中用 ActionBarActivity
替换了 FragmentActivity
:
public class MainActivity extends FragmentActivity //ActionBarActivity
但是没有运气
最佳答案
错误的方法
调用旧的import android.support.v7.app.ActionBar;
如果您要扩展 AppCompatActivity/FragmentActivity,那么您就是在为较旧的 Android 版本提供向后支持,为此您应该使用 getSupportActionBar()
。
阅读 getSupportActionBar using FragmentActivity
public class MainActivity extends AppCompatActivity {
// ...
....
ActionBar actionBar =getSupportActionBar();
}
添加这个。
dependencies {
// …
compile 'com.android.support:appcompat-v7:23.1.0'
}
检查 Activity, AppCompatActivity, FragmentActivity, and ActionBarActivity: When to Use Which?
AppCompatActivity is from the appcompat-v7 library. Principally, this offers a backport of the action bar. Since the native action bar was added in API Level 11, you do not need AppCompatActivity for that.
为您的 Information How do I add a library (android-support-v7-appcompat) in IntelliJ IDEA
关于android - getActionBar 无法使用 AppCompat 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35054234/