2012-11-08 57 views
1

我有一個類延伸ListActivity,我試圖用下面的代碼來隱藏默認TitleBar(我認爲它叫做ActionBar)。它適用於常規活動,但不適用於ListActivity。我如何在這種情況下完成相同的工作?使用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

+0

你能張貼在這裏的堆棧跟蹤?我支持公司代理..:| – Enrichman

+0

嘗試** ** setContentView()**之後的Window.FEATURE **。只是一個想法。 –

+0

在super.onCreate()和setContentView()之後調用requestWindowFeature(Window.FEATURE_NO_TITLE).....首先設置窗口,然後設置No title bar選項。 – drulabs

回答

0

我想你不應該使用requestwindowFeature(),如果您使用的是ActionBar。您可以隱藏動作條的標題與此:

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

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

+0

這是無用的,因爲它只會顯示一個圖標,但旁邊沒有文字標題。你*還想*是'actionBar.setDisplayShowHomeEnabled(false);' –

-1

好像被getActionBar()產生NullPointerException異常。從代碼中刪除以下行修復了問題。

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之前被調用。

+0

@downvoter:謹慎地闡述你的行爲?代碼工作正常,並且是答案的解決方案。 –

1

要禁用Titltbar,請在清單文件中使用此代碼,它將幫助您。

< 活動 機器人:主題= 「@安卓風格/ Theme.NoTitleBar.Fullscreen」 >

相關問題