Android 我可以在构造器中更改工具栏的标题吗?如果可以,怎么可能?

Android 我可以在构造器中更改工具栏的标题吗?如果可以,怎么可能?,android,android-studio,fragment,android-studio-2.0,Android,Android Studio,Fragment,Android Studio 2.0,我可以在构造器中更改工具栏的标题吗?如果可以,怎么可能 public DashboardFragment() { ((AppCompatActivity) this.getActivity()).getSupportActionBar().setTitle("DashBoard"); } 假设您在活动的xml中定义了工具栏,则可以使用以下方法从片段访问它: 重写片段中的onAttach()方法,以在父活动可用时获取对其的引用。然后,只需获取对工具栏(应该在活动xml中定义)的引用并设置标题

我可以在构造器中更改工具栏的标题吗?如果可以,怎么可能

public DashboardFragment() {


((AppCompatActivity) this.getActivity()).getSupportActionBar().setTitle("DashBoard");
}

假设您在活动的xml中定义了工具栏,则可以使用以下方法从片段访问它:

重写片段中的
onAttach()
方法,以在父活动可用时获取对其的引用。然后,只需获取对工具栏(应该在活动xml中定义)的引用并设置标题即可。像这样

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    Toolbar toolbar = (Toolbar) activity.findViewById(R.id.toolbar);
    toolbar.setTitle("Your Custom Title");
}

您应该在onCreate()中或之后更改标题,但我想根据我的代码更改构造函数中的标题。如果您的片段嵌入到xml布局中,则构造函数将在活动初始化之前运行,然后您将获得空指针异常。如果片段尚未附加,则对getActivity()的调用可能返回空。因此,在构造函数中调用getActivity将不起作用。当您知道片段已附加到活动时,应该调用它,例如在onCreate中。我知道这就是为什么我要求使用其他方法来更改我的标题,。。。。。。