我正在制作标签视图的简单演示。但是在第一行我得到空指针异常。我从这个方法 getActionBar()
获得null值为什么?
我会和你分享我的课程
import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class MainActivity extends FragmentActivity implements ActionBar.TabListener {
ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
actionBar=getActionBar(); /// <- this is the line causing issue
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
}
// ---------- methods ---------------//
}
我在 actionBar=getActionBar();
这是我的清单文件和style.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
</style>
</resources>
app.grudle
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example.naveen.tabviewswipe"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
}
答案 0 :(得分:1)
您的MainActivity
需要延长AppCompatActivity
(而不是FragmentActivity
)。此外,您需要使用其他方法来获取ActionBar
:
actionBar = getSupportActionBar()
这是因为您正在使用支持库。
答案 1 :(得分:0)
您应该扩展ActionBarActivity
并使用getSupportActionBar()
。
答案 2 :(得分:0)
如果你想扩展FragmentActivity,那么你需要使用非appcompat主题,即Holo来获取actionbar
<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo">
<!-- Customize your theme here. -->
</style>