2012-12-29 29 views
1

我有以下代碼。當用戶從菜單中選擇「設置」時,它應該創建一個偏好視圖。它是這樣做的,但是當用戶選擇「設置」時,設置菜單出現在我的默認視圖之上,比如它有一個透明背景。當設置菜單被創建時,我已經包括了它的樣子。你可以看到,除了我的屏幕中間的「大文本」,我的默認視圖是空白的,但首選項菜單隻顯示在它的頂部。首選菜單顯示在默認視圖頂部

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
     case R.id.menu_settings: 
      getFragmentManager().beginTransaction() 
      .replace(android.R.id.content, new SettingsMenu()) 
      .addToBackStack(null) 
      .commit(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

我該如何解決這個問題?

回答

3

通常情況下,您應該開始一項新活動,而不是將我所假定的PreferenceFragment直接添加到您的活動中。

或者,您應該將您現有的用戶界面(「大文本」)放入通過您的replace()調用進行替換的片段中。就目前而言,您現有的用戶界面看起來並不在一個片段中,或者至少不會被識別爲android.R.id.content

+0

謝謝。這更有意義。 (它也有助於清理我的代碼)。我最終把我的「大文本」放在一個片段中,並且效果很好。 – Reid