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">
+
+
+
+
+
+