Я отправляю целочисленное значение из одного фрагмента в другой, но получаю ошибку ссылки на нулевой объект при выполнении. Ниже я публикую свои два класса фрагментов и один класс ViewModel, куда я передаю данные.
Я использую эту поддержку для отправки данных другим фрагментам
RowViewModel.Class
{
public BindableString albumName = new BindableString();
public BindableString albumDate = new BindableString();
public BindableString albumYear = new BindableString();
public BindableString albumMonth = new BindableString();
int position;
HappyMomentFragment happyMomentFragment;
ArrayList<RowHappyMomentViewModel> arrayList;
public static String TAG = "RowHappyMomentViewModel";
public RowHappyMomentViewModel(HappyMomentFragment happyMomentFragment, in position) {
this.happyMomentFragment = happyMomentFragment;
this.position = position;
}
public void onRowClick(View view) {
Bundle bundle=new Bundle();
bundle.putInt("Position", position);
happyMomentFragment.setArguments(bundle);
HappyMomentDetailFragment.addFragment((BaseActivity)
happyMomentFragment.getActivity());
//Log.e(TAG, "position " + position);
}
}
Из этого класса я отправляю данные.
HappyMomentFragment.class
{
HappyMomentViewModel mViewModel;
FragmentHappyMomentBinding binding;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mViewModel = new HappyMomentViewModel(this);
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_happy_moment, container, false);
binding.setVm(mViewModel);
((BaseActivity) getActivity()).setToolbarVisibility(false);
return binding.getRoot();
}
public static void addFragment(BaseActivity activity) {
activity.replaceFragment(new HappyMomentFragment(), true);
}
**I am receiving the data in this class**
HapppyMomentDetailFragment.class{
HappyMomentDetailViewModel mViewModel;
FragmentHappyMomentDetailBinding binding;
public final String TAG = "HappyMomentDetailFragment";
int position;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mViewModel = new HappyMomentDetailViewModel(this);
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_happy_moment_detail, container, false);
binding.setVm(mViewModel);
Bundle args=getArguments();
position = args.getInt("Position");
ViewPager viewPager = binding.getRoot().findViewById(R.id.view_pager);
TabLayout tabLayout = binding.getRoot().findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(viewPager);
((BaseActivity) getActivity()).setToolbarVisibility(false);
Log.e(TAG, "position " + position);
return binding.getRoot();
}
public static void addFragment(BaseActivity activity) {
activity.replaceFragment(new HappyMomentDetailFragment(), true);
}
}