Передайте модель просмотра в качестве аргумента - PullRequest
0 голосов
/ 20 июня 2020

Допустимо ли ссылаться на модель представления в качестве аргумента в другом классе? Есть ли утечки памяти?

LoadData(viewmodel)

MainFragment. java

public class MainFragment extends Fragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        
        //DataViewModel
        DataViewModel model = new ViewModelProvider(requireActivity()).get(DataViewModel.class);
        
        //This is the callback method with viewmodel as argument
        new GetDataUtil().LoadData(model);
      
        model.getListData().observe(getViewLifecycleOwner(), item -> item.getNote()); //UI update work in progress
        return view;
    }
}

GetDataUtil. java

public class GetDataUtil {
    List<Note> listData = new ArrayList<>();

    //Asynchronous method to load data from internet, in this case firestore
    //This is what I mean when using viewmodel as parameter
    public void LoadData(DataViewModel model){

        //Asynchronous task start block {                
                listData.add(Note); //For loop add data from querysnapshot
                model.getListData().setValue(listData);
        //Asynchronous task end block }
    }
}

DataViewModel. java

public class DataViewModel extends ViewModel {
    private MutableLiveData<List<Note>> listData = new MutableLiveData<>();

    public MutableLiveData<List<Note>> getListData(){
        return listData;
    }
}

Я все еще новичок в разработке android, было бы лучше, если бы кто-нибудь показал мне соответствующую статью или документацию, касающуюся правил использования модели просмотра, это - это то, что я пытаюсь понять. Спасибо

...