Android: (...) Класс фрагмента и (...) класс ViewModel - PullRequest
0 голосов
/ 21 января 2020

Я относительно новичок в среде android. У меня был проект, созданный из шаблона. В этом проекте я много работал с фрагментами. Для каждого фрагмента был создан класс с именем [...] Fragment. java и [...] ViewModel. java. За что отвечают отдельные классы. Что входит в первое, что входит во второе?

Первый класс:

public class HomeFragment extends Fragment {

    private HomeViewModel homeViewModel;

    public View onCreateView(@NonNull LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
        homeViewModel =
                ViewModelProviders.of(this).get(HomeViewModel.class);
        View root = inflater.inflate(R.layout.fragment_home, container, false);
        final TextView textView = root.findViewById(R.id.text_home);
        homeViewModel.getText().observe(this, new Observer<String>() {
            @Override
            public void onChanged(@Nullable String s) {
                textView.setText(s);
            }
        });
        return root;
    }
}

Второй класс:

public class HomeViewModel extends ViewModel {

    private MutableLiveData<String> mText;

    public HomeViewModel() {
        mText = new MutableLiveData<>();
        mText.setValue("This is home fragment");
    }

    public LiveData<String> getText() {
        return mText;
    }
}

1 Ответ

0 голосов
/ 21 января 2020
Фрагмент

- это ваш контроллер представления, он управляет видом, знает, когда нажата кнопка, или где находится текст, или пользователь ввел текст для редактирования, или нет.

viewModel отвечает за logi c и данные вашего приложения, например, что делать при нажатии кнопки, или что должно отображать textView. когда кнопка нажата, фрагмент вызывает viewModel для правильного действия. представление (ваш фрагмент) не должно иметь возможности изменять свойства в вашей viewModel, оно должно иметь возможность просто наблюдать их, для этого мы используем LiveData.

они все являются частью архитектуры под названием MVVM, сокращенно для Модель, представление, просмотр и просмотр модели MVVM для получения дополнительной информации

Руководство по архитектуре приложения

также этот курс по мастерству может вам очень помочь

Разработка Android приложений с Kotlin

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...