Примеры шаблонов проектирования Android MVVM - PullRequest
63 голосов
/ 11 февраля 2011

В настоящее время я много занимаюсь разработкой WPF и начал создавать некоторые базовые приложения для Android. При создании приложений WPF я часто использую MVVM, обычно с помощью Prism, и хотел бы знать, есть ли примеры MVVM для платформы Android?

Ответы [ 14 ]

0 голосов
/ 25 августа 2018

https://github.com/MindorksOpenSource/android-mvvm-architecture

Архитектура Android MVVM: пример приложения

Этот репозиторий содержит пример приложения, которое реализует архитектуру MVVM с использованием Dagger2, Room, RxJava, FastAndroidNetworking, PlaceHolderView и AndroidDebugDatabase

Приложение имеет следующие пакеты:

data: It contains all the data accessing and manipulating components.
di: Dependency providing classes using Dagger2.
ui: View classes along with their corresponding ViewModel.
utils: Utility classes.
0 голосов
/ 11 июля 2017

В github есть множество примеров для инфраструктуры MVVM. Я рекомендую использовать DroidWizard

DroidWizard имеет свою собственную связь между представлением и моделью представления, и структура немного отличается от mvvm.

ModelEngine ViewModel View вместо модели ViewModel View

0 голосов
/ 30 марта 2016

Я нашел это Написание тестируемого Android MVVM Серия приложений, написанных о MVVM с использованием библиотеки Android Data Binding, действительно хороша. В этой серии он объяснил от простого примера до обзора переработчика, а также есть тесты.

Возможно, вы также можете попробовать библиотеку mv2m .

0 голосов
/ 17 декабря 2015

Вы можете выполнить следующие шаги для привязки данных во фрагментах: я разместил дизайн и класс java как в Примере привязки данных во фрагменте.

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:bind="http://schemas.android.com/apk/res-auto">
    <data class=".UserBinding">
        <variable  name="user" type="com.darxstudios.databind.example.User"/>
    </data>
 <RelativeLayout

    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivityFragment"
    >



        <TextView android:text='@{user.firstName+"  "+user.lastName}' android:layout_width="wrap_content"
        android:layout_height="wrap_content"
            android:id="@+id/textView" />

     <Button
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="New Button"
         android:id="@+id/button"
         android:layout_below="@+id/textView"
         android:layout_toEndOf="@+id/textView"
         android:layout_marginStart="40dp"
         android:layout_marginTop="160dp" />

 </RelativeLayout>
</layout>


    public class MainActivityFragment extends Fragment {

    public MainActivityFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        final User user = new User();
        user.setFirstName("Michael");
        user.setLastName("Cameron");
        UserBinding binding = DataBindingUtil.inflate(inflater,R.layout.fragment_main, container, false);
        binding.setUser(user);

        View view = binding.getRoot();

        final Button button = (Button) view.findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                user.setFirstName("@Darx");
                user.setLastName("Val");
            }
        });

        return view;
    }

}

Руководство разработчика по привязке данных Линия руководства

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