1

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

4 回答 4

1

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

<activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >

于 2012-11-08T11:42:45.917 回答
0

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

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

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

于 2012-11-08T11:10:06.610 回答
0

要删除操作栏:getActionBar().hide()。另请参阅此答案:如何永久禁用操作栏

于 2012-11-08T11:15:08.037 回答
-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.

于 2012-11-08T11:14:51.450 回答