Просмотр исходного кода

修复幂动任务可能报错和小程序任务可能产生重复数据的bug

zengjiebin лет назад: 7
Родитель
Сommit
43eb5c3eeb

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/util/ListUtil.java

@@ -204,7 +204,7 @@ public class ListUtil {
         if (allList != null && removeList != null)
             allList.removeAll(removeList);
     }
-
+    //I 传入的数据, R 返回的结果
     public static interface CallBack<I, R> {
         public R call(I i);
     }

+ 3 - 4
app/src/main/java/com/sheep/gamegroup/view/fragment/BaseListFragment.java

@@ -170,10 +170,9 @@ public abstract class BaseListFragment<T> extends BaseFragment {
     }
 
     public void notifyDataSetChanged() {
-        if (view_list == null)
-            view_list = findViewById(R.id.view_list);
-        if (empty_view == null)
-            empty_view = findViewById(R.id.empty_view);
+        if (view_list == null || empty_view == null){
+            return;
+        }
         loadMore = false;
         updateEmptyView();
         if (page == 1) {

+ 3 - 5
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMiDong.java

@@ -147,6 +147,9 @@ public class FgtMiDong extends BaseFragment {
     }
 
     private void notifyDataSetChanged() {
+        if(refresh == null || empty_view == null){
+            return;
+        }
         CommonUtil.getInstance().updateEmptyView(empty_view, listData.isEmpty());
         refresh.setRefreshing(false);
         adListAdapter.notifyDataSetChanged();
@@ -164,7 +167,6 @@ public class FgtMiDong extends BaseFragment {
             AdManager.getInstance(activity).getAdListAsync(activity, new GetAdListListener() {
                 @Override
                 public void onLoadAdSuccess(List<AdData> list) {
-                    refresh.setRefreshing(false);
                     if (list != null) {
                         if (pageNo == 1)
                             listData.clear();
@@ -187,7 +189,6 @@ public class FgtMiDong extends BaseFragment {
                     }
                     refresh_init_false++;
 
-                    refresh.setRefreshing(false);
                     if (isRefresh)
                         G.showToast(activity, "网络异常,请稍后再试", Toast.LENGTH_SHORT);
                     notifyDataSetChanged();
@@ -209,7 +210,6 @@ public class FgtMiDong extends BaseFragment {
             AdManager.getInstance(activity).getSignListAsync(activity, new GetAdListListener() {
                 @Override
                 public void onLoadAdSuccess(List<AdData> list) {
-                    refresh.setRefreshing(false);
                     if (list != null && list.size() > 0) {
                         if (pageNo == 1)
                             listData.clear();
@@ -229,7 +229,6 @@ public class FgtMiDong extends BaseFragment {
 
                 @Override
                 public void onLoadAdFailure() {
-                    refresh.setRefreshing(false);
                     if (isRefresh)
                         G.showToast(activity, "网络异常,请稍后再试", Toast.LENGTH_SHORT);
                     notifyDataSetChanged();
@@ -237,7 +236,6 @@ public class FgtMiDong extends BaseFragment {
 
                 @Override
                 public void onAdEmpty() {
-                    refresh.setRefreshing(false);
                     if (isRefresh)
                         G.showToast(activity, "暂无数据", Toast.LENGTH_SHORT);
                     notifyDataSetChanged();

+ 13 - 9
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMiDongWeChatTaskList.java

@@ -11,6 +11,8 @@ import com.kfzs.appstore.utils.adapter.recyclerview.ViewHolder;
 import com.mdad.sdk.mdsdk.AdManager;
 import com.mdad.sdk.mdsdk.GetAdListListener;
 import com.mdad.sdk.mdsdk.common.AdData;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
 
@@ -49,17 +51,21 @@ public class FgtMiDongWeChatTaskList extends BaseListFragment<AdData> {
 
     @Override
     public void initData() {
-//        LogUtil.println("FgtMiDongWeChatTaskList", "initData", "start");
+        LogUtil.println("FgtMiDongWeChatTaskList", "initData", "start");
+        if(!ListUtil.isEmpty(list)){
+            setNoMore(true);//一次性全部获取的,所以不需要翻页
+            view_list.setNoMore(true);
+            return;
+        }
         AdManager.getInstance(activity).getWeChatTaskList(activity, new GetAdListListener() {
 
             @Override
             public void onLoadAdSuccess(final List<AdData> newList) {
-//                LogUtil.println("FgtMiDongWeChatTaskList", "initData", "onLoadAdSuccess");
+                LogUtil.println("FgtMiDongWeChatTaskList", "initData", "onLoadAdSuccess");
                 activity.runOnUiThread(new Runnable() {
                     @Override
                     public void run() {
-                        list.addAll(newList);
-                        setNoMore(true);//一次性全部获取的,所以不需要翻页
+                        ListUtil.addAll(list, newList);
                         notifyDataSetChanged();
                     }
                 });
@@ -67,11 +73,10 @@ public class FgtMiDongWeChatTaskList extends BaseListFragment<AdData> {
 
             @Override
             public void onLoadAdFailure() {
-//                LogUtil.println("FgtMiDongWeChatTaskList", "initData", "onLoadAdFailure");
+                LogUtil.println("FgtMiDongWeChatTaskList", "initData", "onLoadAdFailure");
                 activity.runOnUiThread(new Runnable() {
                     @Override
                     public void run() {
-                        setNoMore(true);
                         notifyDataSetChanged();
                     }
                 });
@@ -79,16 +84,15 @@ public class FgtMiDongWeChatTaskList extends BaseListFragment<AdData> {
 
             @Override
             public void onAdEmpty() {
-//                LogUtil.println("FgtMiDongWeChatTaskList", "initData", "onAdEmpty");
+                LogUtil.println("FgtMiDongWeChatTaskList", "initData", "onAdEmpty");
                 activity.runOnUiThread(new Runnable() {
                     @Override
                     public void run() {
-                        setNoMore(true);
                         notifyDataSetChanged();
                     }
                 });
             }
         });
-//        LogUtil.println("FgtMiDongWeChatTaskList", "initData", "end");
+        LogUtil.println("FgtMiDongWeChatTaskList", "initData", "end");
     }
 }