From ddf7f030fa253c54b2d18deffd754eec773c4aa5 Mon Sep 17 00:00:00 2001 From: billdizl Date: Thu, 11 Jan 2024 12:48:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?BannerConfig=E5=A2=9E=E5=8A=A0=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E9=85=8D=E7=BD=AE=E7=94=A8=E4=BA=8E=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=96=B0=E7=9A=84=E6=96=B9=E5=BC=8F=E5=A4=84?= =?UTF-8?q?=E7=90=86,=E6=95=B0=E6=8D=AE=E5=8F=91=E7=94=9F=E5=8F=98?= =?UTF-8?q?=E5=8C=96=E6=9C=AA=E5=88=B7=E6=96=B0=E9=80=82=E9=85=8D=E5=99=A8?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=9A=84=E5=B4=A9=E6=BA=83=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../youth/banner/adapter/BannerAdapter.java | 52 ++++++++++++++++--- .../com/youth/banner/config/BannerConfig.java | 9 ++++ 2 files changed, 53 insertions(+), 8 deletions(-) diff --git a/banner/src/main/java/com/youth/banner/adapter/BannerAdapter.java b/banner/src/main/java/com/youth/banner/adapter/BannerAdapter.java index b8d1e7c..3626a9d 100644 --- a/banner/src/main/java/com/youth/banner/adapter/BannerAdapter.java +++ b/banner/src/main/java/com/youth/banner/adapter/BannerAdapter.java @@ -1,5 +1,6 @@ package com.youth.banner.adapter; +import android.annotation.SuppressLint; import android.view.ViewGroup; import androidx.annotation.NonNull; @@ -14,9 +15,6 @@ import java.util.ArrayList; import java.util.List; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - public abstract class BannerAdapter extends RecyclerView.Adapter implements IViewHolder { protected List mDatas = new ArrayList<>(); @@ -33,11 +31,33 @@ public BannerAdapter(List datas) { * * @param datas */ + @SuppressLint("NotifyDataSetChanged") public void setDatas(List datas) { - if (datas == null) { - datas = new ArrayList<>(); + if (BannerConfig.isIsUseBanerdata()) { + setList(datas); + } else { + if (datas == null) { + datas = new ArrayList<>(); + } + mDatas = datas; + notifyDataSetChanged(); + } + + } + + /*** + * 设置数据 + */ + @SuppressLint("NotifyDataSetChanged") + public void setList(List datas) { + if (mDatas == null) { + mDatas = new ArrayList<>(); + } else { + mDatas.clear(); + } + if (mDatas != null && datas != null) { + mDatas.addAll(datas); } - mDatas = datas; notifyDataSetChanged(); } @@ -48,7 +68,14 @@ public void setDatas(List datas) { * @return */ public T getData(int position) { - return mDatas.get(position); + if (mDatas == null) { + return null; + } else { + if (mDatas.size() > position) { + return mDatas.get(position); + } + } + return null; } /** @@ -58,7 +85,16 @@ public T getData(int position) { * @return */ public T getRealData(int position) { - return mDatas.get(getRealPosition(position)); + + if (mDatas == null) { + return null; + } else { + int realPosition = getRealPosition(position); + if (mDatas.size() > realPosition) { + return mDatas.get(realPosition); + } + } + return null; } diff --git a/banner/src/main/java/com/youth/banner/config/BannerConfig.java b/banner/src/main/java/com/youth/banner/config/BannerConfig.java index faa1f6f..aee4f6d 100644 --- a/banner/src/main/java/com/youth/banner/config/BannerConfig.java +++ b/banner/src/main/java/com/youth/banner/config/BannerConfig.java @@ -40,4 +40,13 @@ public class BannerConfig { public static final int INDICATOR_HEIGHT = (int) BannerUtils.dp2px(3); public static final int INDICATOR_RADIUS = (int) BannerUtils.dp2px(3); + public static boolean IS_USE_BANERDATA=false; + + public static boolean isIsUseBanerdata() { + return IS_USE_BANERDATA; + } + + public static void setIsUseBanerdata(boolean isUseBanerdata) { + IS_USE_BANERDATA = isUseBanerdata; + } } From 3f73e644699ac9e4704e00c24fc632c066c36a7a Mon Sep 17 00:00:00 2001 From: billdizl Date: Thu, 11 Jan 2024 12:50:08 +0800 Subject: [PATCH 2/2] =?UTF-8?q?BannerConfig=E5=A2=9E=E5=8A=A0=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E9=85=8D=E7=BD=AE=E7=94=A8=E4=BA=8E=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=96=B0=E7=9A=84=E6=96=B9=E5=BC=8F=E5=A4=84?= =?UTF-8?q?=E7=90=86,=E6=95=B0=E6=8D=AE=E5=8F=91=E7=94=9F=E5=8F=98?= =?UTF-8?q?=E5=8C=96=E6=9C=AA=E5=88=B7=E6=96=B0=E9=80=82=E9=85=8D=E5=99=A8?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=9A=84=E5=B4=A9=E6=BA=83=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/youth/banner/adapter/BannerAdapter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/banner/src/main/java/com/youth/banner/adapter/BannerAdapter.java b/banner/src/main/java/com/youth/banner/adapter/BannerAdapter.java index 3626a9d..5d05024 100644 --- a/banner/src/main/java/com/youth/banner/adapter/BannerAdapter.java +++ b/banner/src/main/java/com/youth/banner/adapter/BannerAdapter.java @@ -71,7 +71,7 @@ public T getData(int position) { if (mDatas == null) { return null; } else { - if (mDatas.size() > position) { + if (mDatas.size() > position&&position!=-1) { return mDatas.get(position); } } @@ -90,7 +90,7 @@ public T getRealData(int position) { return null; } else { int realPosition = getRealPosition(position); - if (mDatas.size() > realPosition) { + if (mDatas.size() > realPosition&&position!=-1) { return mDatas.get(realPosition); } }