From f7d36b0f2c254a048905ae27c9e421427eb0f2c8 Mon Sep 17 00:00:00 2001 From: Administrator <123> Date: Thu, 04 Nov 2021 02:04:19 +0000 Subject: [PATCH] tablayout 框架 分页加载框架 --- app/src/main/java/com/duqing/missions/base/activities/BaseActivity.java | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/duqing/missions/base/BaseActivity.java b/app/src/main/java/com/duqing/missions/base/activities/BaseActivity.java similarity index 96% rename from app/src/main/java/com/duqing/missions/base/BaseActivity.java rename to app/src/main/java/com/duqing/missions/base/activities/BaseActivity.java index 3d37b2c..ada8707 100644 --- a/app/src/main/java/com/duqing/missions/base/BaseActivity.java +++ b/app/src/main/java/com/duqing/missions/base/activities/BaseActivity.java @@ -1,4 +1,4 @@ -package com.duqing.missions.base; +package com.duqing.missions.base.activities; import android.Manifest; import android.app.AlertDialog; @@ -26,6 +26,8 @@ import androidx.annotation.StringRes; import androidx.appcompat.app.AppCompatActivity; import androidx.core.content.FileProvider; +import androidx.lifecycle.ViewModel; +import androidx.lifecycle.ViewModelProvider; import androidx.viewbinding.ViewBinding; import com.duqing.missions.MyApplication; @@ -58,11 +60,13 @@ import okhttp3.ResponseBody; /** + * activity 封装 * Created by Administrator on 2021/10/27 0027. */ -public abstract class BaseActivity<B extends ViewBinding> extends AppCompatActivity { +public abstract class BaseActivity<B extends ViewBinding,VM extends ViewModel> extends AppCompatActivity { protected B binding; + protected VM viewModel; protected String TAG ; public final String[] FILE_PERMISSIONS = new String []{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE}; public final String[] LOCATION_PERMISSIONS = new String []{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION}; @@ -106,10 +110,13 @@ // get genericity "B" setStatusBarBgColor(R.color.white); setStatusBarTextColor(true); - Class<B> entityClass = (Class<B>) ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[0]; try { + final ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass(); + Class<B> entityClass = (Class<B>) type.getActualTypeArguments()[0]; Method method = entityClass.getMethod("inflate", LayoutInflater.class);//get method from name "inflate"; binding = (B) method.invoke(entityClass,getLayoutInflater());//execute method to create a objct of viewbind; + Class<VM> vmClass = (Class<VM>) type.getActualTypeArguments()[1]; + viewModel = new ViewModelProvider(this).get(vmClass); } catch (Exception e) { e.printStackTrace(); } -- Gitblit v1.9.1