android.os.Parcelable android.os.Bundle.getParcelable(java.lang.String)' 在空对象引用上

android.os.Parcelable android.os.Bundle.getParcelable(java.lang.String)' on a null object reference

我想在第一个片段中传递数据


                Bundle bundle = new Bundle();
                progress = DetailProgressFragmentArgs.fromBundle(getArguments()).getProgress();
                bundle.putParcelable("progress", progress);
                new DetailProgressFragment().setArguments(bundle);

                Log.d("testProgress", String.valueOf(progress.getProgress_id()));

                fragmentTransaction.replace(R.id.fragment, new DetailProgressFragment()).commit();
                fragmentTransaction.addToBackStack(null);

第二个片段

Bundle bundle = getArguments();
        progress = (Progress) bundle.getParcelable("progress");

错误

java.lang.NullPointerException: 尝试在空对象引用

上调用虚拟方法'android.os.Parcelable android.os.Bundle.getParcelable(java.lang.String)'

您创建了片段的两个实例。你应该只创建一个这样的。 基本上你收到 NullPointerException 是因为你在 replace() 里面放了一个没有包数据的新片段实例

Bundle bundle = new Bundle();
progress = DetailProgressFragmentArgs.fromBundle(getArguments()).getProgress();
bundle.putParcelable("progress", progress);
DetailProgressFragment myFragment = new DetailProgressFragment();
myFragment.setArguments(bundle);
Log.d("testProgress", String.valueOf(progress.getProgress_id()));

fragmentTransaction.replace(R.id.fragment,myFragment).commit();
fragmentTransaction.addToBackStack(null);