gpt4 book ai didi

android - fragments onAttach 中的 NullPointerException for findViewById

转载 作者:行者123 更新时间:2023-11-29 15:45:54 25 4
gpt4 key购买 nike

所以我有一个奇怪的问题,我现在无法解决。

房间游戏 fragment

@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
roomActivity = (RoomActivity) activity;

gameTabContainerView = (LinearLayout) roomActivity.findViewById(R.id.game_tab_container); // findViewById returns null

// NullPointerException
gameTabContainerView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
}

这在打开包含 fragment 的 Activity 时完全正常。但问题是:如果我让 Activity 保持打开状态,将应用程序置于后台(通过单击主页按钮),使用其他应用程序,然后在一段时间后再次打开我的应用程序,我会得到 NullPointerException,因为 findViewById 现在返回 null。我怎样才能防止这种情况发生? Activity 是否从堆栈中移除,从而导致异常?我知道我可以只检查 null,但我需要 onClickListener,即使我在应用程序进入后台后返回该应用程序也是如此。

最佳答案

您不应在 onAttach() 中执行此代码,而应在 onActivityCreated() 中执行。这是因为尚未创建“ View ”。 onAttach() 在 Fragment 生命周期中位于 onCreateView() 之上。

更多信息:http://developer.android.com/guide/components/fragments.html#Creating

关于android - fragments onAttach 中的 NullPointerException for findViewById,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33330816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com