BaseRecyclerViewAdapterHelper之BaseQuickAdapter的基础用法

    xiaoxiao2021-03-25  133

    一个实体类RectclerItem

    public class RecyclerItem { private String title;    private String content;    public RecyclerItem(String title, String content){ this.title = title;        this.content = content;    } public String getTitle() { return title;    } public void setTitle(String title) { this.title = title;    } public String getContent() { return content;    } public void setContent(String content) { this.content = content;    } }

    一个基类BaseRecyclerViewActivity

    public abstract class BaseRecyclerViewActivity extends BaseActivity implements SwipeRefreshLayout.OnRefreshListener { protected TextView titleNameTv;    protected SwipeRefreshLayout swipeRefreshLayout;    protected RecyclerView recyclerView;    @Override    protected int getLayoutResId() { return R.layout.activity_recyclerview;    } @Override    protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState);        titleNameTv = (TextView) findViewById(R.id.title_name_tv);        swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);        recyclerView = (RecyclerView) findViewById(R.id.recycler_view);        swipeRefreshLayout.setOnRefreshListener(this);        recyclerView.setLayoutManager(new LinearLayoutManager(this));        recyclerView.addItemDecoration( new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));    } @Override    public void onRefresh() { swipeRefreshLayout.postDelayed(new Runnable() { @Override            public void run() { swipeRefreshLayout.setRefreshing(false);                onRefreshComplete();            } },2000);    } /**     * 获取数据     *     * @param count 设置要获取的数据的数量     * @return     */    protected List<RecyclerItem> getListData(int count) { if (count == 0) return null;        List<RecyclerItem> newDatas = new ArrayList<>();        for (int i = 0; i < count; i++) { if (i%3 == 0) { newDatas.add(new RecyclerItem("悯农", "唐代诗人李绅", 0));            }else if (i%3 == 1){ newDatas.add(new RecyclerItem("锄禾日当午,", "汗滴禾下土。", 1));            }else if (i%3 == 2){ newDatas.add(new RecyclerItem("谁知盘中餐,  ", "粒粒皆辛苦。", 2));            } } return newDatas;    } protected abstract void onRefreshComplete(); }

    一个item(view_list_item)的视图文件和适配器QuickAdapter

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/view_list_item_ll"    android:orientation="horizontal" android:layout_width="match_parent"    android:padding="10dp"    android:layout_height="wrap_content">    <ImageView        android:layout_width="40dp"        android:layout_height="40dp"        android:src="@drawable/gardenia"        android:scaleType="centerCrop"/>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="40dp"        android:orientation="vertical">        <TextView            android:id="@+id/list_item_title_tv"            style="@style/TextStyle_14sp_666"            android:layout_width="match_parent"            android:layout_height="0dp"            android:layout_weight="1.0"            android:gravity="center_vertical"            android:layout_marginLeft="10dp"            android:textStyle="bold"            android:text="标题1" />        <TextView            android:id="@+id/list_item_content_tv"            style="@style/TextStyle_14sp_666"            android:layout_width="match_parent"            android:layout_height="0dp"            android:layout_weight="1.0"            android:singleLine="true"            android:ellipsize="marquee"            android:marqueeRepeatLimit="marquee_forever"            android:gravity="center_vertical"            android:layout_marginLeft="10dp"            android:text="内容1" />    </LinearLayout> </LinearLayout>

    public class QuickAdapter extends BaseQuickAdapter<RecyclerItem,BaseViewHolder> { public QuickAdapter() { super(R.layout.view_list_item);    } @Override    protected void convert(BaseViewHolder helper, RecyclerItem item) { helper.setText(R.id.list_item_title_tv,item.getTitle()) .setText(R.id.list_item_content_tv,item.getContent());        helper.getView(R.id.list_item_content_tv).setSelected(true);    } }

    实现类QuickActivity

    public class QuickActivity extends BaseRecyclerViewActivity { private QuickAdapter quickAdapter;    @Override    protected int getLayoutResId() { return super.getLayoutResId();    } @Override    protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState);        titleNameTv.setText("BaseQuickAdapter的基础使用");        ExtraView headerView = new ExtraView(this);        headerView.setContent("头部,点击添加,长按删除。");        ExtraView footerView = new ExtraView(this);        footerView.setContent("这是我的尾部。");        quickAdapter = new QuickAdapter();        quickAdapter.openLoadAnimation(BaseQuickAdapter.SLIDEIN_RIGHT);        quickAdapter.addHeaderView(headerView);        quickAdapter.addFooterView(footerView);        recyclerView.setAdapter(quickAdapter);        quickAdapter.setNewData(getListData(6));        initListener();    } private void initListener() { // item点击事件,功能:显示点击位置        recyclerView.addOnItemTouchListener(new OnItemClickListener() { @Override            public void onSimpleItemClick(BaseQuickAdapter adapter, View view, int position) { ToastUtils.showShortToast(position + quickAdapter.getItem(position).getTitle());            } });        // 头部视图点击事件,添加数据        quickAdapter.getHeaderLayout().setOnClickListener(new View.OnClickListener() { @Override            public void onClick(View v) { recyclerView.postDelayed(new Runnable() { @Override                    public void run() { quickAdapter.addData(0,getListData(2));                    } },500);            } });        // 头部视图长按事件,删除数据        quickAdapter.getHeaderLayout().setOnLongClickListener(new View.OnLongClickListener() { @Override            public boolean onLongClick(View v) { recyclerView.postDelayed(new Runnable() { @Override                    public void run() { for (int i = 0; i < 3; i++) { quickAdapter.remove(3);                        } recyclerView.scrollToPosition(0);                    } },500);                return true;            } });        // item长按事件,功能:删除长按item        recyclerView.addOnItemTouchListener(new OnItemLongClickListener() { @Override            public void onSimpleItemLongClick(BaseQuickAdapter adapter, final View view,                                              final int position) { SnackbarUtils.showLongSnackbar( view,                        "删除了:" + quickAdapter.getItem(position).getTitle(),                        Color.WHITE,Color.BLACK);                recyclerView.postDelayed(new Runnable() { @Override                    public void run() { quickAdapter.remove(position);                    } },500);            } });        // 加载更多        quickAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() { @Override            public void onLoadMoreRequested() { recyclerView.postDelayed(new Runnable() { @Override                    public void run() { quickAdapter.addData(getListData(3));                        quickAdapter.loadMoreComplete();                    } },500);            } });    } @Override    protected void onRefreshComplete() { quickAdapter.addData(0,getListData(1));        recyclerView.scrollToPosition(0);    } }

     

    效果图如下:

    转载请注明原文地址: https://ju.6miu.com/read-4270.html

    最新回复(0)