From 462d583986e4739f7a75227b3fde4da587502ba5 Mon Sep 17 00:00:00 2001 From: Administrator <123> Date: Fri, 05 Nov 2021 03:20:39 +0000 Subject: [PATCH] 主页 动态UI adapter null视图问题修改 分页框架 include问题 --- app/src/main/java/com/duqing/missions/base/activities/BaseLoadPageActivity.java | 28 ++++++++++++++++++++-------- 1 files changed, 20 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/duqing/missions/base/activities/BaseLoadPageActivity.java b/app/src/main/java/com/duqing/missions/base/activities/BaseLoadPageActivity.java index bcd52ad..81f9dd4 100644 --- a/app/src/main/java/com/duqing/missions/base/activities/BaseLoadPageActivity.java +++ b/app/src/main/java/com/duqing/missions/base/activities/BaseLoadPageActivity.java @@ -10,6 +10,7 @@ import com.duqing.missions.base.adapter.BaseAdapter; import com.duqing.missions.base.model.BaseLoadPageViewModel; import com.duqing.missions.data.BasePageResult; +import com.duqing.missions.databinding.RefreshRecyclerBinding; import com.scwang.smart.refresh.footer.ClassicsFooter; import com.scwang.smart.refresh.header.ClassicsHeader; import com.scwang.smart.refresh.layout.SmartRefreshLayout; @@ -37,19 +38,30 @@ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - Class<A> entityClass = (Class<A>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[2]; try { + Class<A> entityClass = (Class<A>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[2]; this.adapter = entityClass.newInstance();//实例化泛型 - smartRefresh = (SmartRefreshLayout) binding.getClass().getDeclaredField("smartRefresh").get(binding); - smartRefresh.setRefreshHeader(new ClassicsHeader(mContext)); - smartRefresh.setRefreshFooter(new ClassicsFooter(mContext)); - smartRefresh.setOnRefreshLoadMoreListener(this); + String smartStr = "smartRefresh"; + smartRefresh = (SmartRefreshLayout) binding.getClass().getField(smartStr).get(binding); recycler = (RecyclerView) binding.getClass().getDeclaredField("recycler").get(binding); - recycler.setLayoutManager(new LinearLayoutManager(mContext)); - recycler.setAdapter(adapter); - } catch (Exception e) { + } catch (NoSuchFieldException e) { + try { + RefreshRecyclerBinding includeRefreshRecycler = (RefreshRecyclerBinding) binding.getClass().getDeclaredField ("includeRefreshRecycler").get(binding); + smartRefresh = includeRefreshRecycler.smartRefresh; + recycler = includeRefreshRecycler.recycler; + } catch (Exception e2) { + e2.printStackTrace(); + } + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (java.lang.InstantiationException e) { e.printStackTrace(); } + smartRefresh.setRefreshHeader(new ClassicsHeader(mContext)); + smartRefresh.setRefreshFooter(new ClassicsFooter(mContext)); + smartRefresh.setOnRefreshLoadMoreListener(this); + recycler.setLayoutManager(new LinearLayoutManager(mContext)); + recycler.setAdapter(adapter); } private void finishFreshLoadmore(D result){ -- Gitblit v1.9.1