安卓MVVM设计模式示例

65

我目前主要进行WPF开发,并开始创建一些基本的Android应用程序。在创建WPF应用时,我经常使用MVVM,通常使用Prism,想知道是否有任何适用于Android平台的MVVM示例?


您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - jbatista
这里有一个在Android中使用MVVM和RxJava的示例:https://dev59.com/a2oy5IYBdhLWcg3wfeMR#50421750 - Ali Nem
14个回答

0

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

Android MVVM 架构:示例应用

该代码库包含一个详细的示例应用程序,使用 Dagger2、Room、RxJava、FastAndroidNetworking、PlaceHolderView 和 AndroidDebugDatabase 实现了 MVVM 架构。

该应用程序具有以下包:

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
您可以按照以下步骤在Fragment中进行数据绑定:我已经在“示例中绑定Fragment数据”的设计和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;
    }

}

开发者网站数据绑定指南


0

Github上有很多MVVM框架的例子。我建议使用DroidWizard

DroidWizard在视图和视图模型之间进行自己的耦合,而且该框架与MVVM略有不同。

ModelEngine ViewModel View代替了Model ViewModel View。


0
我发现这个系列 Writing Testable Android MVVM 很好,它使用了 Android Data Binding 库来讲解 MVVM 框架。在这个系列中,他从简单的例子一直到 recyclerview 中都有讲解,并且还有测试。
你也可以尝试一下 mv2m library

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接