gpt4 book ai didi

android - 在 fragment 中获取 Nullpointerexception

转载 作者:行者123 更新时间:2023-11-29 20:58:35 25 4
gpt4 key购买 nike

我正在开发应用程序,我在其中附加了 5 个 fragment 的 Activity 。一切都很好,但是当我将我的应用程序从任何 fragment 置于后台时,一段时间后当我的应用程序恢复时它崩溃了。我将我的 Activty 引用为空。这是我的代码

这是我附加 fragment 的 Activty 中的代码

   FragmentManager fragmentManager = getSupportFragmentManager();
searchFragment = SearchFragment.newInstance(MainBaseActivity.this);
fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.frameLayoutMain, searchFragment, "SearchFragment");
fragmentTransaction.commit();

这是我的 fragment 类

   public static SearchFragment newInstance(MainBaseActivity mainBaseActivity) {

fragment = new SearchFragment();
fragment.mainBaseActivity = mainBaseActivity;
fragment.inflater = (LayoutInflater) mainBaseActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
fragment.myApplication = ((MyApplication) mainBaseActivity.getApplicationContext());
return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);


}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View view = inflater.inflate(R.layout.search_fragment, container, false);

preferences = mainBaseActivity.getSharedPreferences(Constant.CHAI_APP, Context.MODE_PRIVATE); // here i get null pointer
editor = preferences.edit();

return view;
}

最佳答案

fragment 可以在不同时间被系统杀死和重新创建。您不能相信您在 newInstance() 中进行的那种初始化 - 当 fragment 被重新创建时,字段不会被初始化。

删除这些初始化:

fragment.mainBaseActivity = mainBaseActivity;
fragment.inflater = (LayoutInflater) mainBaseActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
fragment.myApplication = ((MyApplication) mainBaseActivity.getApplicationContext());

并在您需要访问您的托管 Activity 或应用程序时在您的 fragment 中使用getActivity()

对于 inflater,一个已经作为参数传入 onCreateView()。无需自己获取。

(要将参数传递给在 fragment 重建过程中持续存在的 fragment ,请使用 setArguments()。)

关于android - 在 fragment 中获取 Nullpointerexception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26863778/

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