Android 如何通过在片段之间切换来更改Actionbar标题
当应用程序启动时,我有一个包含两个片段的应用程序,Actionbar标题是第一个片段之一。但是当我进入第二个片段时,标题并没有改变 那么如何更改ActionBar标题呢 这是我的代码:Android 如何通过在片段之间切换来更改Actionbar标题,android,android-fragments,android-actionbar,Android,Android Fragments,Android Actionbar,当应用程序启动时,我有一个包含两个片段的应用程序,Actionbar标题是第一个片段之一。但是当我进入第二个片段时,标题并没有改变 那么如何更改ActionBar标题呢 这是我的代码: public class ClientList extends Fragment { @Override public void onResume() { super.onResume(); String title; title = getRes
public class ClientList extends Fragment {
@Override
public void onResume() {
super.onResume();
String title;
title = getResources().getString(R.string.client_title);
ActionBarActivity action = ((EmployeeActivity)getActivity());
action.getSupportActionBar().setTitle(title);
}
@Override
public void onDestroyView() {
super.onDestroyView();
String title2;
title2 = getResources().getString(R.string.action_settings);
ActionBarActivity action = ((EmployeeActivity)getActivity());
action.getSupportActionBar().setTitle(title2);
}
}
因此,如果您说您无法从
onCreateView
获得该方法,那么这就是您的解决方案,我认为:
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_fragment,
container, false);
getActivity().setTitle("Title");
return view;
}
因为如果在调用setTitle()
之前返回,则无法访问它,这是正确的。
希望有帮助。这应该可以:
getActivity().setTitle(YOUR_TITLE);
当需要设置时,从片段中调用它。无论何时从一个片段切换到另一个片段,都可以在ActionBar中设置标题。这可以在片段的onCreateView(…)上完成。建议尝试在尝试加载片段的活动中更改名称。
要这样做
如果您正在使用appcompat库
ActionBar ActionBar=getSupportActionBar();
actionBar.setTitle(“您的标题”)代码>
如果您没有使用appcompat库
ActionBar ActionBar=getActionBar();
actionBar.setTitle(“您的标题”)
您可以将onCreate(if activity)/onCreateView(if fragment)方法中的操作栏标题设置为getSupportActionBar().setTitle(“您的标题”)代码>getActivity().setTitle(标题)
?您应该将您的onDestroyView()
逻辑放在super.onDestroyView()
之前,销毁顺序应该与创建顺序相反。另外,我认为您应该在新片段中更改新标题,而不是在当前片段被销毁时,如果您只是将其隐藏或放在后堆栈中,则可能不会发生这种情况。您想更改两次还是怎样?当片段刚刚创建时,您是否尝试在onCreateView
中更改它?@Yurets每次在片段之间切换时,我都想更改标题。我尝试了onCreateView,但出现了无法访问的语句错误