From b247b44f504d700786f2d7466f5703eed996b397 Mon Sep 17 00:00:00 2001 From: Dboy <894230813@qq.com> Date: Sat, 26 Sep 2020 15:23:19 +0800 Subject: [PATCH] MyBase --- Lib_Base/src/main/AndroidManifest.xml | 8 +++- .../com/quyunshuo/base/mvvm/v/MyActivity.java | 25 +++++++++++ .../quyunshuo/base/mvvm/v/MyBaseActivity.java | 43 +++++++++++++++++++ .../quyunshuo/base/mvvm/v/MyViewModel.java | 17 ++++++++ Lib_Base/src/main/res/layout/my_activity.xml | 12 ++++++ app/src/main/AndroidManifest.xml | 9 ++++ 6 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/MyActivity.java create mode 100644 Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/MyBaseActivity.java create mode 100644 Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/MyViewModel.java create mode 100644 Lib_Base/src/main/res/layout/my_activity.xml diff --git a/Lib_Base/src/main/AndroidManifest.xml b/Lib_Base/src/main/AndroidManifest.xml index 102648e..6f94496 100644 --- a/Lib_Base/src/main/AndroidManifest.xml +++ b/Lib_Base/src/main/AndroidManifest.xml @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/MyActivity.java b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/MyActivity.java new file mode 100644 index 0000000..cdd9eb6 --- /dev/null +++ b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/MyActivity.java @@ -0,0 +1,25 @@ +package com.quyunshuo.base.mvvm.v; + +import android.view.LayoutInflater; + +import com.quyunshuo.base.databinding.MyActivityBinding; + +import org.jetbrains.annotations.NotNull; + +/** + * @author DBoy + * @date 2020/9/26 + * Class 描述 : + */ +public class MyActivity extends MyBaseActivity { + + @Override + protected MyActivityBinding getViewBinding(LayoutInflater from) { + return MyActivityBinding.inflate(from); + } + + @Override + protected void initViewAndData() { + mViewModel.test(); + } +} diff --git a/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/MyBaseActivity.java b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/MyBaseActivity.java new file mode 100644 index 0000000..65fbae8 --- /dev/null +++ b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/MyBaseActivity.java @@ -0,0 +1,43 @@ +package com.quyunshuo.base.mvvm.v; + +import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.lifecycle.ViewModel; +import androidx.lifecycle.ViewModelProvider; +import androidx.viewbinding.ViewBinding; + +import java.lang.reflect.ParameterizedType; + +/** + * @author DBoy + * @date 2020/9/26 + * Class 描述 : + */ +public abstract class MyBaseActivity extends AppCompatActivity { + + protected V viewBinding; + + protected M mViewModel; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + viewBinding = getViewBinding(LayoutInflater.from(this)); + setContentView(viewBinding.getRoot()); + + //init ViewModel | getActualTypeArguments[0] =是第一个泛型参数 [1] = 是类的第二个泛型参数 + Class tClass = (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[1]; + mViewModel = new ViewModelProvider(this).get(tClass); + + initViewAndData(); + } + + protected abstract V getViewBinding(LayoutInflater from); + + protected abstract void initViewAndData(); + +} diff --git a/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/MyViewModel.java b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/MyViewModel.java new file mode 100644 index 0000000..45999ed --- /dev/null +++ b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/MyViewModel.java @@ -0,0 +1,17 @@ +package com.quyunshuo.base.mvvm.v; + +import android.util.Log; + +import androidx.lifecycle.ViewModel; + +/** + * @author DBoy + * @date 2020/9/26 + * Class 描述 : + */ +public class MyViewModel extends ViewModel { + + public void test(){ + Log.e("DJC", "AAA"); + } +} diff --git a/Lib_Base/src/main/res/layout/my_activity.xml b/Lib_Base/src/main/res/layout/my_activity.xml new file mode 100644 index 0000000..80cd62a --- /dev/null +++ b/Lib_Base/src/main/res/layout/my_activity.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fcb0d98..276e397 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,6 +21,15 @@ android:supportsRtl="true" android:theme="@style/base_AppTheme" tools:ignore="UnusedAttribute"> + + + + + +