使用ListActivity隐藏应用程序标题的例外情况

时间:2012-11-08 10:58:34

标签: android android-actionbar titlebar

我有一个扩展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

4 个答案:

答案 0 :(得分:1)

要禁用Titltbar,请在清单文件中使用此代码,它会对您有帮助。

< 活动 机器人:主题= “@安卓风格/ Theme.NoTitleBar.Fullscreen” >

答案 1 :(得分:0)

我认为如果您使用ActionBar,则不应使用requestWindowFeature()。您可以使用以下方法隐藏ActionBar的标题:

ActionBar actionBar = getActionBar(); 
actionBar.setDisplayShowTitleEnabled(false); 

http://developer.android.com/reference/android/app/ActionBar.html#setDisplayShowTitleEnabled(boolean

答案 2 :(得分:0)

删除操作栏:getActionBar()。hide()。另请参阅此答案:How to disable action bar permanently

答案 3 :(得分:-1)

似乎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);
     }
}

请注意,在调用requestWindowFeature课程和super之前必须先调用setContentView