我试图更改活动的标题,我从片段中进入活动,所以当我点击硬件后退按钮时,标题不会改为我在那次活动中提供的,即
this.setTitle("Something");
我也试过
setTitle("Something");
更新
当我使用下面提到的代码时,我遇到了一个问题,我在mainActivity中分配的标题保留在所有页面中,因此在frgment getActivity().setTitle("");
似乎在这种情况下无用,所以代替使用下面提到的代码改变标题,即使用getsupportactionbar.settitle("")
更改操作栏标题,这是一种简单的方法。
我能以任何方式知道某项活动是否来自system back button
后退状态吗?
答案 0 :(得分:2)
您可以使用 onResume()方法
来处理这种情况//...
@Override
onResume(){
super.onResume();
this.getActionBar().setTitle("Something");
}
ı想想,这会对你有帮助。
答案 1 :(得分: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);
}
答案 2 :(得分:0)
如果您在更改时始终将片段添加到Backstack,则可以按如下方式覆盖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();
}
}
答案 3 :(得分:0)
答案 4 :(得分:-1)
getSupportActionbar().setTitle("Your Title")
每当您想要更改标题时,都必须拨打此电话。
如果您在片段之间切换,请再次调用该方法并将其切换回旧标题。