为什么 android 中的 actionbar 显示空值?
why null value display in actionbar in android?
我正在制作选项卡视图的简单演示。但是在第一行我遇到了空指针异常。我从这个方法中得到空值 getActionBar()
为什么?
我会和你分享我的 class
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'
}
您的 MainActivity
需要扩展 AppCompatActivity
(而不是 FragmentActivity
)。此外,您需要使用不同的方法来获取 ActionBar
:
actionBar = getSupportActionBar()
这是因为您正在使用支持库。
您应该扩展 ActionBarActivity
并使用 getSupportActionBar()
。
如果你想扩展 FragmentActivity,那么你需要使用非 appcompat 主题,即 Holo 来获取 actionbar
<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo">
<!-- Customize your theme here. -->
</style>
我正在制作选项卡视图的简单演示。但是在第一行我遇到了空指针异常。我从这个方法中得到空值 getActionBar()
为什么?
我会和你分享我的 class
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'
}
您的 MainActivity
需要扩展 AppCompatActivity
(而不是 FragmentActivity
)。此外,您需要使用不同的方法来获取 ActionBar
:
actionBar = getSupportActionBar()
这是因为您正在使用支持库。
您应该扩展 ActionBarActivity
并使用 getSupportActionBar()
。
如果你想扩展 FragmentActivity,那么你需要使用非 appcompat 主题,即 Holo 来获取 actionbar
<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo">
<!-- Customize your theme here. -->
</style>