当我第一次启动应用程序时,下面的代码运行正常。但是当离开应用程序并再次打开它时,我收到错误getActivity() returns null.
我在片段中执行此代码:
(getActivity()).runOnUiThread(new Runnable() {
@Override
public void run() {
enableMenu();
openMenu();
navigateToFragment(new BlankFragment());
}
});
怎么办?
我如何获得活动?
答案 0 :(得分:5)
创建Activity的对象并在onAttach方法中指定它,如下所示。 有时候getActivity会给出null,因此它是在onAttach中创建活动实例并使用该实例的更好方法。
private Activity mActivity;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mActivity = activity;
}
现在使用此对象而不是getActivity()
答案 1 :(得分:1)
onAttach(活动活动)方法现已弃用。 你应该使用这个:
@Override
public void onAttach(Context context) {
super.onAttach(context);
activity = getActivity();
}