Administrator
2021-11-05 462d583986e4739f7a75227b3fde4da587502ba5
app/src/main/java/com/duqing/missions/base/activities/BaseLoadPageActivity.java
@@ -7,9 +7,10 @@
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewbinding.ViewBinding;
import com.duqing.missions.base.BaseAdapter;
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){