2015-05-20 24 views
0

我試圖改變活動的標題,我要從片段中進行活動,所以當我點擊硬件後退按鈕時,標題不會激活到我在該活動中提供的那個標題即爲什麼Actionbar標題在按下硬件後退按鈕時一直顯示後臺標題?

this.setTitle("Something"); 

我也曾嘗試

setTitle("Something"); 

更新

當我使用下面提到的代碼我碰到哪裏,我在M指定標題的問題ainActivity留在所有頁面中,因此在這種情況下,getActivity().setTitle("");似乎毫無用處,所以不用在所有地方改變標題,而是使用下面提到的代碼即使用getsupportactionbar.settitle("")更改操作欄標題,是否有一種簡單的方法。

通過任何方式,我可以知道一個活動是否來自system back button回來狀態?

+0

你有沒有設置'動作條#setDisplayShowTitleEnabled(真)'?如果不是,標題可能不會顯示。 – Darwind

+0

nope這不起作用 – silverFoxA

+0

你不能在'Activity'上使用'setTitle' - 你需要將下面的答案和'ActionBar#setDisplayShowTitleEnabled(true)'一起使用。 – Darwind

回答

0

試試這個:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
    ActionBar ab = getActionBar(); 
    ab.setTitle("My Title"); 
    ab.setSubtitle("sub-title"); 
    } 

編輯:

對於SupportActionBar使用:

ActionBar actionBar = getSupportActionBar(); 

EDIT2:

我用它來從每一個設置標題片段

@Override 
public void onResume() { 
    super.onResume(); 
    // Set the title 
    getActivity().getActionBar() //getSupportActionBar() 
     .setTitle(R.string.fragment_title); 
} 
+0

我使用的支持行動欄,所以是一樣的工作對我來說? – silverFoxA

+0

這樣做的問題是相同的標題正在實施,我有 – silverFoxA

+0

所有其他片段以及這種解決方案並不能幫助我 – silverFoxA

2

您可以處理這種情況與的onResume()方法

//... 
@Override 
onResume(){ 
    super.onResume(); 
    this.getActionBar().setTitle("Something"); 
} 

我認爲,這將幫助你。

+0

之前同樣的工作爲的,如果你沒有完成給定標題onBackPress方法onResume後的活動將執行,爲什麼你不接受? – settaratici

+0

我應該接受什麼? – silverFoxA

-1
getSupportActionbar().setTitle("Your Title") 

你必須在你想改變標題時調用它。

如果您正在片段之間切換,請再次調用該方法並將其切換回您的舊標題。

0

如果你總是添加您的片段堆棧中切換時,則backpress可以重寫如下總是讓你以前的片段標題:

@Override 
public void onBackPressed() { 
    int T= getFragmentManager().getBackStackEntryCount(); 
    if (getFragmentManager().getBackStackEntryCount() == 0) { 
     finish(); 
    } 
    else if (getFragmentManager().getBackStackEntryCount() == 1) { 
     finish(); 
    } 
    else { 
     String tr = getFragmentManager().getBackStackEntryAt(T-2).getName(); 
     setTitle(tr); 
     getFragmentManager().popBackStack(); 
    } 
} 
相關問題