public class ChangeFragment extends Fragment {
private RecyclerView mRecyclerView;
private MyAdapter adapter1,adapter2;
private WordViewModel mWordViewModel;
private LiveData<List<Word>> allWords;
public ChangeFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_change, container, false);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ViewModelProvider.AndroidViewModelFactory factory = ViewModelProvider.AndroidViewModelFactory.getInstance(requireActivity().getApplication());
ViewModelProvider provider = new ViewModelProvider(requireActivity(),factory);
mWordViewModel = provider.get(WordViewModel.class);
//LiveData<List<Word>> all = mWordViewModel.getAllWordLive();
//Word word = all.getValue().get(1);
//String string = word.getWord();
//Log.d("my log",String.valueOf(string));
mRecyclerView = requireActivity().findViewById(R.id.recyclerView_change);
mRecyclerView.setLayoutManager(new LinearLayoutManager(requireActivity()));
adapter1 = new MyAdapter(false,mWordViewModel);
adapter2 = new MyAdapter(true,mWordViewModel);
boolean temp = getArguments().getBoolean("argument_to_change",false);
if(temp){
mRecyclerView.setAdapter(adapter2);
}else{
mRecyclerView.setAdapter(adapter1);
}
allWords = mWordViewModel.getAllWordLive();
allWords.observe(getViewLifecycleOwner(), new Observer<List<Word>>() {
@Override
public void onChanged(List<Word> words) {
adapter1.notifyDataSetChanged();
adapter2.notifyDataSetChanged();
}
});
}
}