我有一个扩展ListActivity
的类,我试图使用以下代码隐藏默认的titlebar(我认为它称为actionbar)。它可以进行常规活动,但在ListActivity
上不起作用。在这种情况下,我该如何完成?
public class MyClass extends ListActivity{
@Override
public void onCreate(Bundle b) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(b);
// Tried Window.FEATURE_NO_TITLE here as well
setContentView(R.layout.activity_myclass);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
}
结果是NullPoInterException。如果您需要的话,完整的错误堆栈跟踪在这里:http://pastebin.com/vlr5de8m
禁用titltbar,在清单文件中使用此代码,它将为您提供帮助。
<活动android:them ="@android:style/theme.notitlebar.fullscreen">
删除Actionbar:getActionBar()。hide()。另请参阅此答案:如何永久禁用操作栏
如果您使用的是ActionBar,我认为您不应使用requestWindowFeature()。您可以使用以下方式隐藏动作栏标题:
ActionBar actionBar = getActionBar();
actionBar.setDisplayShowTitleEnabled(false);
http://developer.android.com/reference/android/App/actionbar.html#setdisplayshowtitleenabled(boolean)
似乎NullPoInterException由getActionBar()
生成。从代码中删除以下行已解决问题。
getActionBar().setDisplayHomeAsUpEnabled(true);
最终(工作)代码:
public class MyClass extends ListActivity{
@Override
public void onCreate(Bundle b) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(b);
setContentView(R.layout.activity_myclass);
}
}
请注意,在调用super
类和setContentView
。
requestWindowFeature