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);
我想在第一个片段中传递数据
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);