getActionBar() 返回 null
getActionBar() returning null
我需要我的 actionbar 在 setContentView 之前准备好,因为它被 navDrawerFragment 使用,但此时:
public class BaseActivity extends Activity implements NavigationDrawerFragment.NavigationDrawerCallbacks {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_ACTION_BAR);
Log.d("", getActionBar().toString());
setContentView(R.layout.activity_base);
}
它正在返回 null
我的主题:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/light_blue</item>
<item name="colorPrimaryDark">@color/dark_blue</item>
<item name="colorAccent">@color/dark_blue</item>
<item name="android:windowBackground">@color/white</item>
<item name="android:positiveButtonText">@color/white</item>
<item name="android:windowActionBar">true</item>
</style>
以及清单中的声明:
<activity
android:name=".controller.activity.BaseActivity"
android:label="@string/app_name" >
</activity>
您的问题要么是这两件事之一,要么都是。至少他们应该是,除非我疯了..
要么是你打电话的问题
getActionBar()
在设置 contentView 之前
所以将其更改为
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.activity_base);
Log.d("", getActionBar().toString());
}
或
就是你需要打电话
getSupportActionBar()
两者都试一下,告诉我哪个有效!
您正在使用支持库 (AppCompat),因此您必须调用 getSupportActionBar()
您的 BaseActivity
必须 extends
来自 ActionBarActivity
而不是 Activity
public class BaseActivity extends ActionBarActivity implements NavigationDrawerCallbacks {
使用getSupportActionBar();
得到ActionBar
我需要我的 actionbar 在 setContentView 之前准备好,因为它被 navDrawerFragment 使用,但此时:
public class BaseActivity extends Activity implements NavigationDrawerFragment.NavigationDrawerCallbacks {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_ACTION_BAR);
Log.d("", getActionBar().toString());
setContentView(R.layout.activity_base);
}
它正在返回 null
我的主题:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/light_blue</item>
<item name="colorPrimaryDark">@color/dark_blue</item>
<item name="colorAccent">@color/dark_blue</item>
<item name="android:windowBackground">@color/white</item>
<item name="android:positiveButtonText">@color/white</item>
<item name="android:windowActionBar">true</item>
</style>
以及清单中的声明:
<activity
android:name=".controller.activity.BaseActivity"
android:label="@string/app_name" >
</activity>
您的问题要么是这两件事之一,要么都是。至少他们应该是,除非我疯了..
要么是你打电话的问题
getActionBar()
在设置 contentView 之前 所以将其更改为
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.activity_base);
Log.d("", getActionBar().toString());
}
或 就是你需要打电话
getSupportActionBar()
两者都试一下,告诉我哪个有效!
您正在使用支持库 (AppCompat),因此您必须调用 getSupportActionBar()
您的
BaseActivity
必须extends
来自ActionBarActivity
而不是Activity
public class BaseActivity extends ActionBarActivity implements NavigationDrawerCallbacks {
使用
getSupportActionBar();
得到ActionBar