У меня есть фрагменты с кнопкой воспроизведения в моем фрагменте. Всякий раз, когда пользователь нажимает кнопку воспроизведения из фрагмента ViewPager
, он вызывает функцию в активности хоста, которая воспроизводит проигрыватель.
Я пытаюсь реализовать данные в реальном времени, используя ViewModel
, но безуспешно.
public class SlidePlayerFragment extends Fragment {
private MyViewModel viewModel;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
final View view = inflater.inflate(R.layout.fragment_slide_player, container, false);
ImageView playBtn = view.findViewById(R.id.playBtn);
playBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewModel.getIsPlaying().setValue(true);
viewModel.getCheck().setValue("Checking");
}
});
return view;
}
}
}
Вот мой PagerAdapter
public class MyViewPagerAdapter extends FragmentStatePagerAdapter {
private int pages;
public MyViewPagerAdapter(FragmentManager fm,int count) {
super(fm);
pages = count;
}
@Override
public Fragment getItem(int i) {
return new SlidePlayerFragment();
}
@Override
public int getCount() {
return pages;
}
}
Вот функция просмотра модели
private MutableLiveData<Boolean> isPlaying;
public MutableLiveData<Boolean> getIsPlaying() {
if (isPlaying == null)
isPlaying = new MutableLiveData<>();
Log.d("TAG","Checking "+isPlaying.getValue());
return isPlaying;
}
А вот и сегмент наблюдателя
final Observer<Boolean> isPlaying= isPlaying -> {
//code here if playing then do some task here
};
viewModel.getIsPlaying().observe(this,isPlaying);
Примечание Я уже пытался найти предопределенное решение, но ничего не нашел.