{"id":76946,"date":"2026-02-23T16:34:08","date_gmt":"2026-02-23T08:34:08","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/76946.html"},"modified":"2026-02-23T16:34:08","modified_gmt":"2026-02-23T08:34:08","slug":"android-recyclerview-%e5%ae%9e%e6%88%98%ef%bc%9a%e4%bb%8e%e5%9f%ba%e7%a1%80%e5%88%97%e8%a1%a8%e5%88%b0%e5%a4%9a%e7%b1%bb%e5%9e%8b-item%e3%80%81%e5%88%86%e5%89%b2%e7%ba%bf%e4%b8%8e%e7%8a%b6%e6%80%81","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/76946.html","title":{"rendered":"Android RecyclerView \u5b9e\u6218\uff1a\u4ece\u57fa\u7840\u5217\u8868\u5230\u591a\u7c7b\u578b Item\u3001\u5206\u5272\u7ebf\u4e0e\u72b6\u6001\u590d\u7528\u95ee\u9898"},"content":{"rendered":"<h2>\u524d\u8a00<\/h2>\n<p>\u672c\u6587\u4e32\u8d77\u4e86 RecyclerView \u7684\u6838\u5fc3\u80fd\u529b&#xff1a;<\/p>\n<ul>\n<li>Adapter &#043; ViewHolder&#xff1a;\u5217\u8868\u6e32\u67d3\u7684\u57fa\u7840<\/li>\n<li>LayoutManager&#xff1a;\u51b3\u5b9a\u5217\u8868\u5982\u4f55\u6392\u5e03<\/li>\n<li>\u6570\u636e\u9a71\u52a8\u7ed1\u5b9a&#xff1a;position \u5bf9\u5e94\u6570\u636e\u6e90\u4e0b\u6807<\/li>\n<li>notify \u7cfb\u5217 API&#xff1a;\u5168\u91cf\u5237\u65b0\u4e0e\u5c40\u90e8\u5237\u65b0<\/li>\n<li>\u591a ViewType&#xff1a;\u6df7\u5408\u6837\u5f0f\u5217\u8868\u7684\u6807\u51c6\u505a\u6cd5<\/li>\n<li>\u4e8b\u4ef6\u56de\u8c03&#xff1a;\u8ba9 Adapter \u4e0e\u5916\u90e8\u89e3\u8026<\/li>\n<li>\u72b6\u6001\u590d\u7528\u95ee\u9898&#xff1a;\u7528\u6570\u636e\u6e90\u7ed1\u5b9a UI \u72b6\u6001\u662f\u5173\u952e<\/li>\n<\/ul>\n<p>\u638c\u63e1\u8fd9\u4e9b\u4e4b\u540e&#xff0c;\u65e0\u8bba\u662f\u65b0\u95fb\u8d44\u8baf\u6d41\u3001\u5546\u54c1\u5217\u8868\u3001\u804a\u5929\u8bb0\u5f55&#xff0c;\u8fd8\u662f\u6df7\u6392\u63a8\u8350\u9875&#xff0c;RecyclerView \u90fd\u80fd\u8f7b\u677e\u5e94\u5bf9\u3002<\/p>\n<h2>RecyclerView\u5217\u8868\u5f0f\u5e03\u5c40<\/h2>\n<p>\u5728Android\u4e2d\u53ef\u4ee5\u4f7f\u7528RecyclerView\u5b9e\u73b0\u5217\u8868\u5f0f\u5e03\u5c40\u3002<\/p>\n<h3>\u4f7f\u7528\u6b65\u9aa4<\/h3>\n<li>\u65b0\u5de5\u7a0b\u9ed8\u8ba4\u5b58\u5728\u4e8ematerial\u5e93\u4e2d&#xff0c;\u65e7\u9879\u76ee\u9700\u8981\u6dfb\u52a0\u5f15\u7528<\/li>\n<p>implementation <span class=\"token string\">&#039;androidx.constraintlayout:constraintlayout:2.1.4&#039;<\/span><\/p>\n<li>\u5728\u5e03\u5c40\u4e2d\u6dfb\u52a0RecyclerView<\/li>\n<p><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>androidx.recyclerview.widget.RecyclerView<\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;&#043;id\/recycler_view<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>match_parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>match_parent<span class=\"token punctuation\">&#034;<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><\/p>\n<li>\u8bbe\u7f6eRecyclerView\u7684\u5e03\u5c40\u7ba1\u7406\u5668<\/li>\n<p><span class=\"token class-name\">RecyclerView<\/span> recyclerView <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>recycler_view<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/\u7ebf\u6027\u5e03\u5c40\u65b9\u5f0f<\/span><br \/>\n<span class=\"token class-name\">LinearLayoutManager<\/span> layoutManager <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">LinearLayoutManager<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token comment\">\/\/\u7ebf\u6027\u65b9\u5411\u6539\u6210\u6a2a\u5411<\/span><br \/>\n<span class=\"token comment\">\/\/layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);<\/span><br \/>\n<span class=\"token comment\">\/\/\u4e3aRecyclerView\u6dfb\u52a0\u5e03\u5c40\u7ba1\u7406\u5668<\/span><br \/>\nrecyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setLayoutManager<\/span><span class=\"token punctuation\">(<\/span>layoutManager<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/\u7f51\u683c\u5e03\u5c40  \u6307\u5b9a\u4e00\u884c\u663e\u793a2\u4e2aitem  <\/span><br \/>\n<span class=\"token class-name\">GridLayoutManager<\/span> gridLayoutManager <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">GridLayoutManager<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">3<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nrecyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setLayoutManager<\/span><span class=\"token punctuation\">(<\/span>gridLayoutManager<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/\u7011\u5e03\u6d41\u5e03\u5c40 <\/span><br \/>\n<span class=\"token class-name\">StaggeredGridLayoutManager<\/span> layout <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StaggeredGridLayoutManager<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">StaggeredGridLayoutManager<\/span><span class=\"token punctuation\">.<\/span>VERTICAL<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nrecyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setLayoutManager<\/span><span class=\"token punctuation\">(<\/span>layout<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<li>\u8bbe\u7f6e\u9002\u914d\u5668Adapter<\/li>\n<p><span class=\"token comment\">\/\/\u8bbe\u7f6e\u9002\u914d\u5668<\/span><br \/>\n<span class=\"token class-name\">ArticleCheckAdapter<\/span> adapter <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ArticleCheckAdapter<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nrecyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setAdapter<\/span><span class=\"token punctuation\">(<\/span>adapter<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/\u4e3a\u9002\u914d\u5668\u6dfb\u52a0\u6570\u636e\u6765\u6e90<\/span><br \/>\n<span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">createData<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nadapter<span class=\"token punctuation\">.<\/span><span class=\"token function\">setArticles<\/span><span class=\"token punctuation\">(<\/span>articles<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<li>\u4e3aRecyclerView\u6dfb\u52a0\u5206\u5272\u7ebf<\/li>\n<p><span class=\"token comment\">\/\/\u521b\u5efa\u4e00\u4e2a\u9ed8\u8ba4\u7684\u5206\u5272\u7ebf\u6837\u5f0f<\/span><br \/>\n<span class=\"token class-name\">DividerItemDecoration<\/span> decor <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">DividerItemDecoration<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">DividerItemDecoration<\/span><span class=\"token punctuation\">.<\/span>VERTICAL<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token comment\">\/\/decoration.setDrawable(getDrawable(R.drawable.item_div));\/\/\u8fd9\u79cd\u65b9\u5f0f\u53ef\u4ee5\u8bbe\u5b9a\u67d0\u4e2adrawble\u4e3a\u5206\u5272\u7ebf<\/span><br \/>\nrecyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">addItemDecoration<\/span><span class=\"token punctuation\">(<\/span>decor<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<h3>RecyclerView\u4e2d\u7684Adapter\u9002\u914d\u5668<\/h3>\n<p>\u9002\u914d\u5668\u4e2d\u4f1a\u5bf9RecyclerView\u7684item\u5e03\u5c40\u3001\u663e\u793a\u6570\u91cf\u505a\u5904\u7406\u3002<\/p>\n<h4>onCreateViewHolder<\/h4>\n<p>\u6bcf\u5f53RecyclerView\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u65b0\u7684Item\u65f6&#xff0c;\u5c31\u4f1a\u89e6\u53d1onCreateViewHolder\u65b9\u6cd5&#xff0c;\u6211\u4eec\u5c31\u662f\u5728\u8fd9\u4e2a\u65b9\u6cd5\u91cc\u628aitem\u5e03\u5c40\u548cRecyclerView\u505a\u5173\u8054\u7684\u3002<\/p>\n<p><span class=\"token annotation punctuation\">&#064;NonNull<\/span><br \/>\n<span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token class-name\">ArticleAdapter<span class=\"token punctuation\">.<\/span>MyViewHolder<\/span> <span class=\"token function\">onCreateViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">ViewGroup<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> viewType<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token comment\">\/\/\u67e5\u627eitem\u5e03\u5c40<\/span><br \/>\n    <span class=\"token class-name\">View<\/span> view <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">LayoutInflater<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span>parent<span class=\"token punctuation\">.<\/span><span class=\"token function\">getContext<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n            <span class=\"token punctuation\">.<\/span><span class=\"token function\">inflate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>item_article_simple<span class=\"token punctuation\">,<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/\u521b\u5efa\u4e00\u4e2aViewHolder\u5bf9itemView\u505a\u7ba1\u7406<\/span><br \/>\n    <span class=\"token class-name\">MyViewHolder<\/span> myViewHolder <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span>view<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token comment\">\/\/ViewHolder\u548cRecyclerView\u505a\u5173\u8054<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> myViewHolder<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u5982\u679c\u6709\u5f88\u591a\u79cditem\u6837\u5f0f&#xff0c;\u90a3\u4e48&#xff0c;\u53ef\u4ee5\u6839\u636eViewType\u505a\u51fa\u5224\u5b9a\u5904\u7406<\/p>\n<p><span class=\"token annotation punctuation\">&#064;NonNull<\/span><br \/>\n<span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> <span class=\"token function\">onCreateViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">ViewGroup<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> viewType<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token class-name\">Log<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">i<\/span><span class=\"token punctuation\">(<\/span>TAG<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;onCreateViewHolder: viewType &#061; &#034;<\/span> <span class=\"token operator\">&#043;<\/span> viewType<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token comment\">\/\/\u901a\u8fc7ViewType\u533a\u5206\u4e0d\u540c\u7684item&#xff0c;\u5e76\u4e14return\u5bf9\u5e94\u7684ViewHolder<\/span><br \/>\n    <span class=\"token keyword\">switch<\/span> <span class=\"token punctuation\">(<\/span>viewType<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_ARTICLE_2<span class=\"token operator\">:<\/span><br \/>\n            <span class=\"token class-name\">View<\/span> view2 <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">LayoutInflater<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span>parent<span class=\"token punctuation\">.<\/span><span class=\"token function\">getContext<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                    <span class=\"token punctuation\">.<\/span><span class=\"token function\">inflate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>item_article_picture2<span class=\"token punctuation\">,<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">return<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">MyViewHolder2<\/span><span class=\"token punctuation\">(<\/span>view2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_ARTICLE_3<span class=\"token operator\">:<\/span><br \/>\n            <span class=\"token class-name\">View<\/span> view3 <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">LayoutInflater<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span>parent<span class=\"token punctuation\">.<\/span><span class=\"token function\">getContext<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                    <span class=\"token punctuation\">.<\/span><span class=\"token function\">inflate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>item_article_picture3<span class=\"token punctuation\">,<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">return<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">MyViewHolder3<\/span><span class=\"token punctuation\">(<\/span>view3<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_AD<span class=\"token operator\">:<\/span><br \/>\n            <span class=\"token class-name\">View<\/span> viewAd <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">LayoutInflater<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span>parent<span class=\"token punctuation\">.<\/span><span class=\"token function\">getContext<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                    <span class=\"token punctuation\">.<\/span><span class=\"token function\">inflate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>item_article_ad<span class=\"token punctuation\">,<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">return<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">AdViewHolder<\/span><span class=\"token punctuation\">(<\/span>viewAd<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_ARTICLE_1<span class=\"token operator\">:<\/span><br \/>\n        <span class=\"token keyword\">default<\/span><span class=\"token operator\">:<\/span><br \/>\n            <span class=\"token comment\">\/\/\u67e5\u627eitem\u5e03\u5c40<\/span><br \/>\n            <span class=\"token class-name\">View<\/span> view <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">LayoutInflater<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span>parent<span class=\"token punctuation\">.<\/span><span class=\"token function\">getContext<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                    <span class=\"token punctuation\">.<\/span><span class=\"token function\">inflate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>item_article_simple<span class=\"token punctuation\">,<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token comment\">\/\/\u521b\u5efa\u4e00\u4e2aViewHolder\u5bf9itemView\u505a\u7ba1\u7406<\/span><br \/>\n            <span class=\"token class-name\">MyViewHolder<\/span> myViewHolder <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span>view<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token comment\">\/\/ViewHolder\u548cRecyclerView\u505a\u5173\u8054<\/span><br \/>\n            <span class=\"token keyword\">return<\/span> myViewHolder<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token punctuation\">}<\/span><\/p>\n<h4>onBindViewHolder<\/h4>\n<p>\u8d1f\u8d23\u628a\u6570\u636e\u548c\u6bcf\u4e2aViewHolder\u4e2d\u7684ItemView\u505a\u5173\u8054<\/p>\n<p><span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onBindViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> holder<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token class-name\">Log<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">i<\/span><span class=\"token punctuation\">(<\/span>TAG<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;onBindViewHolder: position &#061;&#034;<\/span> <span class=\"token operator\">&#043;<\/span> position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token comment\">\/\/\u901a\u8fc7position\u83b7\u53d6\u5bf9\u5e94\u7684viewtype<\/span><br \/>\n    <span class=\"token keyword\">int<\/span> itemViewType <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">getItemViewType<\/span><span class=\"token punctuation\">(<\/span>position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token class-name\">Article<\/span> article <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span>position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">switch<\/span> <span class=\"token punctuation\">(<\/span>itemViewType<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_ARTICLE_2<span class=\"token operator\">:<\/span><br \/>\n            <span class=\"token class-name\">MyViewHolder2<\/span> holder2 <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">MyViewHolder2<\/span><span class=\"token punctuation\">)<\/span> holder<span class=\"token punctuation\">;<\/span><br \/>\n            holder2<span class=\"token punctuation\">.<\/span>ivPicture1<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holder2<span class=\"token punctuation\">.<\/span>ivPicture2<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holder2<span class=\"token punctuation\">.<\/span>tvTitle<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holder2<span class=\"token punctuation\">.<\/span>tvAnthor<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getAnthor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">break<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_ARTICLE_3<span class=\"token operator\">:<\/span><br \/>\n            <span class=\"token class-name\">MyViewHolder3<\/span> holder3 <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">MyViewHolder3<\/span><span class=\"token punctuation\">)<\/span> holder<span class=\"token punctuation\">;<\/span><br \/>\n            holder3<span class=\"token punctuation\">.<\/span>ivPicture1<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holder3<span class=\"token punctuation\">.<\/span>ivPicture2<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holder3<span class=\"token punctuation\">.<\/span>ivPicture3<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holder3<span class=\"token punctuation\">.<\/span>tvTitle<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holder3<span class=\"token punctuation\">.<\/span>tvAnthor<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getAnthor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">break<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_AD<span class=\"token operator\">:<\/span><br \/>\n            <span class=\"token class-name\">AdViewHolder<\/span> holderAd <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">AdViewHolder<\/span><span class=\"token punctuation\">)<\/span> holder<span class=\"token punctuation\">;<\/span><br \/>\n            holderAd<span class=\"token punctuation\">.<\/span>ivPicture<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getAdPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">break<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_ARTICLE_1<span class=\"token operator\">:<\/span><br \/>\n        <span class=\"token keyword\">default<\/span><span class=\"token operator\">:<\/span><br \/>\n            <span class=\"token class-name\">MyViewHolder<\/span> holderSimple <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">)<\/span> holder<span class=\"token punctuation\">;<\/span><br \/>\n            holderSimple<span class=\"token punctuation\">.<\/span>ivPicture<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holderSimple<span class=\"token punctuation\">.<\/span>tvTitle<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holderSimple<span class=\"token punctuation\">.<\/span>tvAnthor<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getAnthor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">break<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<h4>getItemCount<\/h4>\n<p>\u544a\u8bc9RecyclerView\u5e94\u8be5\u663e\u793a\u591a\u5c11\u6761\u6570\u636e&#xff0c;\u4e00\u822c\u6211\u4eec\u4f1a\u628a\u8fd9\u4e2a\u65b9\u6cd5\u7684\u8fd4\u56de\u503c&#xff0c;\u548c\u6570\u636e\u6e90\u7684\u957f\u5ea6\u505a\u5173\u8054\u3002<\/p>\n<p>    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token function\">getItemCount<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n<span class=\"token comment\">\/\/        if (articles !&#061; null) {<\/span><br \/>\n<span class=\"token comment\">\/\/            return articles.size();<\/span><br \/>\n<span class=\"token comment\">\/\/        } else {<\/span><br \/>\n<span class=\"token comment\">\/\/            return 0;<\/span><br \/>\n<span class=\"token comment\">\/\/        }<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> articles <span class=\"token operator\">!&#061;<\/span> <span class=\"token keyword\">null<\/span> <span class=\"token operator\">?<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">:<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<h4>getItemViewType<\/h4>\n<p>\u8fd4\u56de\u7ed9\u5b9a\u4f4d\u7f6e\u7684\u89c6\u56fe\u7c7b\u578b&#xff0c;\u8fd9\u91cc\u8fd4\u56de\u7684ViewType\u51b3\u5b9a\u4e86onCreateViewHolder\u5f62\u53c2\u5217\u8868\u4e2d\u7684ViewType<\/p>\n<p><span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token function\">getItemViewType<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token class-name\">Article<\/span> article <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span>position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token comment\">\/\/\u6839\u636e\u81ea\u5df1\u7684\u4e1a\u52a1\u903b\u8f91\u505a\u5224\u65ad&#xff0c;\u4e0d\u540c\u7684\u6570\u636e&#xff0c;\u8fd4\u56de\u4e0d\u540c\u7684ViewType<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">isIdAd<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> ITEM_TYPE_AD<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">!&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token operator\">&amp;&amp;<\/span> article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token operator\">&amp;&amp;<\/span> article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> ITEM_TYPE_ARTICLE_1<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">!&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token operator\">&amp;&amp;<\/span> article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">!&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token operator\">&amp;&amp;<\/span> article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> ITEM_TYPE_ARTICLE_2<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> ITEM_TYPE_ARTICLE_3<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<h4>\u9002\u914d\u5668\u7684\u6570\u636e\u66f4\u65b0\u65b9\u5f0f<\/h4>\n<p>\u6ce8\u610f&#xff1a;\u5728\u53d8\u66f4\u3001\u5237\u65b0item\u7684\u65f6\u5019&#xff0c;\u68c0\u67e5\u6570\u636e\u6e90\u3001\u5904\u7406\u6570\u636e\u6e90\u540c\u6b65\u66f4\u65b0&#xff0c;\u662f\u4e00\u4e2a\u597d\u4e60\u60ef&#xff01;<\/p>\n<p><span class=\"token comment\">\/\/\u544a\u8bc9adapter&#xff0c;\u548c\u4f60\u5173\u8054\u7684\u6570\u636e\u6e90\u6709\u53d8\u5316&#xff0c;\u8bf7\u91cd\u65b0\u6839\u636e\u6570\u636e\u505a\u51fa\u8c03\u6574<\/span><br \/>\n<span class=\"token comment\">\/\/\u5237\u65b0\u6574\u4e2a\u5217\u8868<\/span><br \/>\n<span class=\"token function\">notifyDataSetChanged<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token comment\">\/\/\u901a\u8fc7position\u79fb\u9664\u6307\u5b9a\u4f4d\u7f6e\u7684item<\/span><br \/>\n<span class=\"token function\">notifyItemRemoved<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token comment\">\/\/\u901a\u8fc7position\u5237\u65b0\u6307\u5b9a\u4f4d\u7f6e\u7684item<\/span><br \/>\n<span class=\"token function\">notifyItemChanged<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token comment\">\/\/\u901a\u8fc7position\u5728\u6307\u5b9a\u4f4d\u7f6e\u63d2\u5165item<\/span><br \/>\n<span class=\"token function\">notifyItemInserted<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token comment\">\/\/\u901a\u8fc7position\u5c06\u6307\u5b9a\u4f4d\u7f6e\u7684item\u79fb\u52a8\u5230\u65b0\u4f4d\u7f6e<\/span><br \/>\n<span class=\"token function\">notifyItemRemoved<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> oldPosition<span class=\"token punctuation\">,<\/span>newPosition<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<h4>ViewHolder<\/h4>\n<p>ViewHolder\u4f1a\u6301\u6709\u6bcf\u4e2aitem\u7684\u89c6\u56fe&#xff0c;\u4e3b\u8981\u662f\u4e3a\u4e86\u505a\u7f13\u5b58\u89c6\u56fe&#xff0c;\u65b9\u4fbf\u590d\u7528&#xff0c;\u53ef\u4ee5\u6781\u5927\u7a0b\u5ea6\u63d0\u5347\u6027\u80fd<\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">MyViewHolder<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">TextView<\/span> textView<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">ImageView<\/span> imageView<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        textView <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>textView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imageView <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>imageView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<h4>\u9002\u914d\u5668\u4e2d\u5982\u4f55\u4e0e\u5916\u90e8\u901a\u8baf&#xff08;\u548cdialog\u4e0e\u5916\u90e8\u901a\u8baf\u7684\u539f\u7406\u4e00\u81f4&#xff09;<\/h4>\n<li>\u5728\u9002\u914d\u5668\u4e2d\u5b9a\u4e49\u4e00\u4e2a\u56de\u8c03\u63a5\u53e3&#xff1b;<\/li>\n<li>\u5728\u5916\u90e8\u521b\u5efa\u63a5\u53e3\u7684\u5b9e\u4f8b&#xff0c;\u5e76\u4f20\u5230\u9002\u914d\u5668\u4e2d<\/li>\n<li>\u9002\u914d\u5668\u4f1a\u5728\u5fc5\u8981\u7684\u65f6\u5019&#xff0c;\u54cd\u5e94\u56de\u8c03\u65b9\u6cd5&#xff1b;<\/li>\n<li>\u5916\u90e8\u5c31\u80fd\u83b7\u53d6\u5230\u901a\u8baf\u65f6\u95f4\u3002<\/li>\n<h2>Android RecyclerView \u5b9e\u6218&#xff1a;\u4ece\u57fa\u7840\u5217\u8868\u5230\u591a\u7c7b\u578b Item\u3001\u5206\u5272\u7ebf\u4e0e\u72b6\u6001\u590d\u7528\u95ee\u9898<\/h2>\n<p>RecyclerView \u662f Android \u4e2d\u6700\u5e38\u7528\u7684\u5217\u8868\u5bb9\u5668\u4e4b\u4e00\u3002\u5b83\u901a\u8fc7 Adapter &#043; ViewHolder \u7684\u6a21\u5f0f&#xff0c;\u5c06\u201c\u6570\u636e\u201d\u548c\u201c\u89c6\u56fe\u201d\u89e3\u8026&#xff0c;\u5e76\u501f\u52a9 ViewHolder \u590d\u7528 \u5728\u957f\u5217\u8868\u4e2d\u83b7\u5f97\u66f4\u597d\u7684\u6027\u80fd\u3002<\/p>\n<p>\u672c\u6587\u4f1a\u4ece\u4e00\u4e2a\u57fa\u7840\u7684\u65b0\u95fb\u5217\u8868\u5f00\u59cb&#xff0c;\u9010\u6b65\u6269\u5c55\u5230&#xff1a;<\/p>\n<ul>\n<li>\u81ea\u5b9a\u4e49 item \u5e03\u5c40&#xff08;ConstraintLayout \u5e38\u89c1\u5751\u4e00\u8d77\u68b3\u7406&#xff09;<\/li>\n<li>\u7f16\u5199 Adapter \/ ViewHolder&#xff0c;\u5b9e\u73b0\u9759\u6001\u4e0e\u52a8\u6001\u6570\u636e\u7ed1\u5b9a<\/li>\n<li>\u5217\u8868\u5c40\u90e8\u5237\u65b0&#xff1a;\u4fee\u6539\u3001\u5220\u9664\u3001\u63d2\u5165<\/li>\n<li>\u591a ViewType&#xff1a;\u4e00\u56fe \/ \u4e24\u56fe \/ \u4e09\u56fe \/ \u5e7f\u544a\u6df7\u6392<\/li>\n<li>\u5206\u5272\u7ebf\u7684\u4e09\u79cd\u5b9e\u73b0\u65b9\u5f0f<\/li>\n<li>Adapter \u4e0e\u5916\u90e8\u4ea4\u4e92&#xff1a;\u70b9\u51fb\u3001\u957f\u6309\u3001\u5173\u95ed\u5e7f\u544a<\/li>\n<li>\u590d\u7528\u5bfc\u81f4\u7684 CheckBox \u72b6\u6001\u9519\u4e71\u4e0e\u6b63\u786e\u5904\u7406\u65b9\u5f0f<\/li>\n<li>Grid \/ StaggeredGrid&#xff08;\u7f51\u683c\u4e0e\u7011\u5e03\u6d41&#xff09;\u5e03\u5c40\u793a\u4f8b<\/li>\n<\/ul>\n<p>\u8bf4\u660e&#xff1a;\u6587\u4e2d\u7684 XML \/ Java \u4ee3\u7801\u5747\u6309\u539f\u6837\u4fdd\u7559&#xff1b;\u53ea\u5bf9\u8bb2\u89e3\u6587\u672c\u505a\u7ed3\u6784\u5316\u6574\u7406\u4e0e\u7ea0\u9519\u3002<\/p>\n<hr \/>\n<h3>1. RecyclerView \u57fa\u672c\u7ed3\u6784&#xff1a;\u4e0d\u8981\u5728 RecyclerView \u5185\u90e8\u201c\u5199\u6b7b\u63a7\u4ef6\u201d<\/h3>\n<p>RecyclerView \u53ea\u8d1f\u8d23\u201c\u5c55\u793a\u4e00\u5806 item\u201d&#xff0c;\u4e0d\u5e94\u8be5\u5728 RecyclerView \u6807\u7b7e\u5185\u90e8\u76f4\u63a5\u58f0\u660e\u4e00\u5806\u5b50\u63a7\u4ef6\u3002\u6b63\u786e\u65b9\u5f0f\u662f&#xff1a;<\/p>\n<li>\u4e3a\u5217\u8868\u5355\u5143\u521b\u5efa\u4e00\u4e2a item_xxx.xml<\/li>\n<li>Adapter \u5728 onCreateViewHolder() \u4e2d\u52a0\u8f7d item \u5e03\u5c40<\/li>\n<li>onBindViewHolder() \u628a\u6570\u636e\u7ed1\u5b9a\u5230 item \u4e0a<\/li>\n<hr \/>\n<h3>2. ConstraintLayout \u91cc margin \u201c\u770b\u8d77\u6765\u5931\u6548\u201d\u7684\u5e38\u89c1\u539f\u56e0<\/h3>\n<p>\u5728 ConstraintLayout \u4e2d&#xff0c;margin \u662f\u5426\u751f\u6548\u9ad8\u5ea6\u4f9d\u8d56\u7ea6\u675f\u5173\u7cfb\u3002\u4ee5\u4e0b\u573a\u666f\u975e\u5e38\u5e38\u89c1&#xff1a;<\/p>\n<li>\n<p>\u8be5\u65b9\u5411\u6ca1\u6709\u6709\u6548\u7ea6\u675f<br \/>\n\u4f8b\u5982\u53ea\u5199\u4e86 layout_marginTop&#xff0c;\u4f46\u6ca1\u6709 top_toTopOf \/ top_toBottomOf \u7ea6\u675f&#xff0c;\u9876\u8fb9\u7684\u5b9a\u4f4d\u4e0d\u6210\u7acb&#xff0c;margin \u5c31\u6ca1\u6709\u201c\u65bd\u529b\u70b9\u201d\u3002<\/p>\n<\/li>\n<li>\n<p>\u7ea6\u675f\u5230 GONE \u7684\u63a7\u4ef6<br \/>\n\u76ee\u6807 View \u4e3a GONE \u65f6&#xff0c;\u666e\u901a margin \u53ef\u80fd\u4e0d\u7b26\u5408\u9884\u671f&#xff0c;\u5e94\u4f7f\u7528 layout_goneMarginStart\/Top\/&#8230;\u3002<\/p>\n<\/li>\n<li>\n<p>\u4f7f\u7528 baseline \u7ea6\u675f<br \/>\nbaseline \u5bf9\u9f50\u65f6&#xff0c;top\/bottom margin \u7684\u8868\u73b0\u53ef\u80fd\u4e0e\u9884\u671f\u4e0d\u540c&#xff0c;\u5e94\u8be5\u6309 baseline \u5bf9\u9f50\u903b\u8f91\u7406\u89e3\u5e03\u5c40\u3002<\/p>\n<\/li>\n<li>\n<p>\u5c3a\u5bf8\u4e0e\u7ea6\u675f\u51b2\u7a81&#xff08;\u8fc7\u7ea6\u675f&#xff09;<br \/>\n\u56fa\u5b9a\u5c3a\u5bf8 &#043; \u591a\u65b9\u5411\u5f3a\u7ea6\u675f\u65f6&#xff0c;\u7cfb\u7edf\u4f1a\u505a\u7ea6\u675f\u89e3\u7b97&#xff0c;\u5bfc\u81f4\u67d0\u4e9b margin \u770b\u8d77\u6765\u201c\u88ab\u5403\u6389\u201d\u3002<\/p>\n<\/li>\n<li>\n<p>wrap_content \u5bfc\u81f4\u8bef\u5224<br \/>\n\u4f8b\u5982 RecyclerView \u4f7f\u7528 wrap_content \u65f6\u4f1a\u6309\u5185\u5bb9\u6491\u5f00&#xff0c;\u4e0d\u4e25\u683c\u201c\u5360\u6ee1\u7ea6\u675f\u533a\u95f4\u201d&#xff0c;\u53ef\u80fd\u8ba9\u4f60\u8bef\u4ee5\u4e3a\u5e95\u90e8 margin \u4e0d\u751f\u6548\u3002\u6b64\u7c7b\u573a\u666f\u901a\u5e38\u5e94\u4f7f\u7528 0dp&#xff08;match constraints&#xff09;\u3002<\/p>\n<\/li>\n<hr \/>\n<h3>3. \u521b\u5efa item \u5e03\u5c40&#xff1a;item_article_simple.xml<\/h3>\n<p>\u6838\u5fc3\u70b9&#xff1a;<\/p>\n<ul>\n<li>\u6839\u5e03\u5c40\u5e38\u7528 match_parent &#043; wrap_content<\/li>\n<li>\u7528 android:padding \u5f62\u6210 item \u5185\u8fb9\u8ddd<\/li>\n<li>\u56fe\u7247\u5e38\u7528 centerCrop \u9002\u914d ImageView \u5c3a\u5bf8<\/li>\n<li>\u6807\u9898\u5e38\u7528 maxLines &#043; ellipsize \u63a7\u5236\u6ea2\u51fa<\/li>\n<li>\u5728 ConstraintLayout \u4e2d&#xff0c;\u6587\u672c\u5bbd\u5ea6\u5e38\u7528 0dp&#xff08;match constraints&#xff09;\u914d\u5408 start\/end \u7ea6\u675f<\/li>\n<\/ul>\n<p><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>androidx.constraintlayout.widget.ConstraintLayout<\/span><br \/>\n      <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>match_parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n      <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>wrap_content<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n      <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>padding<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>12dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n      <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintStart_toStartOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n      <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintTop_toTopOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>parent<span class=\"token punctuation\">&#034;<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/p>\n<p>      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>ImageView<\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;&#043;id\/iv_picture<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>100dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>70dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>scaleType<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>centerCrop<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>src<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;drawable\/icon_logo<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintStart_toStartOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintTop_toTopOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>parent<span class=\"token punctuation\">&#034;<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><\/p>\n<p>      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>TextView<\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;&#043;id\/tv_title<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>0dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>wrap_content<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_marginLeft<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>8dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>ellipsize<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>end<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>maxLines<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>2<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>text<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>textColor<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;color\/black<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>textSize<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>18sp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintEnd_toEndOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintStart_toEndOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;id\/iv_picture<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintTop_toTopOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;id\/iv_picture<span class=\"token punctuation\">&#034;<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><\/p>\n<p>      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>TextView<\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;&#043;id\/tv_anthor<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>0dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>wrap_content<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_marginLeft<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>8dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>ellipsize<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>end<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>maxLines<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>1<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>text<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>\u6211\u662f\u4f5c\u8005\u6211\u662f\u4f5c\u8005\u6211\u662f\u4f5c\u8005<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>textSize<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>16sp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintBottom_toBottomOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;id\/iv_picture<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintEnd_toEndOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n          <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintStart_toEndOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;id\/iv_picture<span class=\"token punctuation\">&#034;<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><\/p>\n<p>  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>androidx.constraintlayout.widget.ConstraintLayout<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/p>\n<hr \/>\n<h3>4. \u7f16\u5199 Adapter&#xff1a;onCreateViewHolder \/ onBindViewHolder \/ getItemCount<\/h3>\n<h4>4.1 \u521b\u5efa Adapter \u4e0e ViewHolder<\/h4>\n<p>Adapter \u7684\u6838\u5fc3\u804c\u8d23&#xff1a;<\/p>\n<ul>\n<li>onCreateViewHolder()&#xff1a;\u52a0\u8f7d item \u5e03\u5c40&#xff0c;\u521b\u5efa ViewHolder<\/li>\n<li>onBindViewHolder()&#xff1a;\u6839\u636e position \u7ed1\u5b9a\u6570\u636e<\/li>\n<li>getItemCount()&#xff1a;\u8fd4\u56de\u5217\u8868\u957f\u5ea6<\/li>\n<\/ul>\n<p>onCreateViewHolder() \u4e2d\u52a0\u8f7d\u5e03\u5c40\u7684\u5178\u578b\u5199\u6cd5&#xff1a;<\/p>\n<p><span class=\"token class-name\">View<\/span> view <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">LayoutInflater<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span>parent<span class=\"token punctuation\">.<\/span><span class=\"token function\">getContext<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><br \/>\n  <span class=\"token function\">inflate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>item_article_simple<span class=\"token punctuation\">,<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>\u4e3a\u4ec0\u4e48\u8981 from(parent.getContext())&#xff1f;<\/p>\n<ul>\n<li>\u56e0\u4e3a item \u5e03\u5c40\u9700\u8981\u4f7f\u7528\u7236\u5bb9\u5668&#xff08;RecyclerView&#xff09;\u6240\u5728\u7684\u4e3b\u9898\u3001\u6837\u5f0f\u4e0e\u8d44\u6e90\u73af\u5883\u3002<\/li>\n<\/ul>\n<p>ViewHolder \u9700\u8981\u7ee7\u627f RecyclerView.ViewHolder&#xff1a;<\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">MyViewHolder<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>      <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n          <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>      <span class=\"token punctuation\">}<\/span><br \/>\n  <span class=\"token punctuation\">}<\/span><\/p>\n<hr \/>\n<h3>5. \u5728 Activity \u4e2d\u8bbe\u7f6e RecyclerView&#xff1a;LayoutManager \u5fc5\u4e0d\u53ef\u5c11<\/h3>\n<p>RecyclerView \u5fc5\u987b\u8bbe\u7f6e LayoutManager&#xff0c;\u5426\u5219\u4e0d\u4f1a\u5e03\u5c40 item\u3002<\/p>\n<p>\u5e38\u89c1\u5e03\u5c40\u7ba1\u7406\u5668&#xff1a;<\/p>\n<ul>\n<li>LinearLayoutManager&#xff1a;\u4e00\u7ef4\u7ebf\u6027\u5217\u8868&#xff08;\u7ad6\u5411\/\u6a2a\u5411&#xff09;<\/li>\n<li>GridLayoutManager&#xff1a;\u7f51\u683c<\/li>\n<li>StaggeredGridLayoutManager&#xff1a;\u7011\u5e03\u6d41<\/li>\n<\/ul>\n<p>\u7ebf\u6027\u5e03\u5c40\u793a\u4f8b&#xff1a;<\/p>\n<p><span class=\"token class-name\">LinearLayoutManager<\/span> layoutManager <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">LinearLayoutManager<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token comment\">\/\/\u7ebf\u6027\u65b9\u5411\u6539\u6210\u6a2a\u5411<\/span><br \/>\n<span class=\"token comment\">\/\/ layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);<\/span><br \/>\n<span class=\"token comment\">\/\/\u4e3aRecyclerView\u6dfb\u52a0\u5e03\u5c40\u7ba1\u7406\u5668<\/span><br \/>\nrecyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setLayoutManager<\/span><span class=\"token punctuation\">(<\/span>layoutManager<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>\u8bbe\u7f6e Adapter&#xff1a;<\/p>\n<p><span class=\"token comment\">\/\/\u8bbe\u7f6e\u9002\u914d\u5668<\/span><br \/>\n<span class=\"token class-name\">ArticleAdapter<\/span> adapter <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ArticleAdapter<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nrecyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setAdapter<\/span><span class=\"token punctuation\">(<\/span>adapter<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<hr \/>\n<h3>6. \u6570\u636e\u7ed1\u5b9a&#xff1a;\u4ece\u201c\u5199\u6b7b\u201d\u5230\u201c\u6a21\u578b\u9a71\u52a8\u201d<\/h3>\n<h4>6.1 \u5728 ViewHolder \u4e2d\u62ff\u5230\u63a7\u4ef6\u5f15\u7528<\/h4>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">MyViewHolder<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span><span class=\"token punctuation\">{<\/span><\/p>\n<p>      <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> ivArticle<span class=\"token punctuation\">;<\/span><br \/>\n      <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvTitle<span class=\"token punctuation\">;<\/span><br \/>\n      <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvAuthor<span class=\"token punctuation\">;<\/span><\/p>\n<p>      <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n          <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n          ivArticle <span class=\"token operator\">&#061;<\/span> view<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_article<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n          tvTitle <span class=\"token operator\">&#061;<\/span> view<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_article_title<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n          tvAuthor <span class=\"token operator\">&#061;<\/span> view<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_article_author<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n      <span class=\"token punctuation\">}<\/span><br \/>\n  <span class=\"token punctuation\">}<\/span><\/p>\n<p>\u5b9e\u8df5\u5efa\u8bae&#xff1a;ViewHolder \u5185\u901a\u5e38\u4f7f\u7528 itemView.findViewById(&#8230;) \u83b7\u53d6\u5b50\u63a7\u4ef6&#xff0c;\u907f\u514d\u51fa\u73b0\u201c\u5f15\u7528\u4e86\u4e0d\u5b58\u5728\u7684 view \u53d8\u91cf\u201d\u6216\u7ed1\u5b9a\u5230\u9519\u8bef View \u7684\u95ee\u9898\u3002<\/p>\n<h4>6.2 Adapter \u4f7f\u7528\u6cdb\u578b\u7ed1\u5b9a ViewHolder \u7c7b\u578b<\/h4>\n<p>RecyclerView.Adapter \u7684\u5b9a\u4e49\u662f\u6cdb\u578b&#xff1a;<\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">abstract<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Adapter<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span>VH <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">ViewHolder<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> <\/p>\n<p>\u56e0\u6b64\u53ef\u4ee5\u8fd9\u6837\u5199&#xff1a;<\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">ArticleAdapter<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>Adapter<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">ArticleAdapter<span class=\"token punctuation\">.<\/span>MyViewHolder<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>\u5e76\u540c\u6b65\u4fee\u6539\u65b9\u6cd5\u7b7e\u540d&#xff1a;<\/p>\n<p><span class=\"token annotation punctuation\">&#064;NonNull<\/span><br \/>\n<span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token class-name\">ArticleAdapter<span class=\"token punctuation\">.<\/span>MyViewHolder<\/span> <span class=\"token function\">onCreateViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">ViewGroup<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> viewType<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onBindViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">ArticleAdapter<span class=\"token punctuation\">.<\/span>MyViewHolder<\/span> holder<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token punctuation\">}<\/span><\/p>\n<h4>6.3 \u5728 onBindViewHolder \u4e2d\u7ed1\u5b9a\u6570\u636e<\/h4>\n<p>\u5148\u7528\u9759\u6001\u6570\u636e\u9a8c\u8bc1\u6d41\u7a0b&#xff1a;<\/p>\n<p><span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onBindViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">MyViewHolder<\/span> holder<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    holder<span class=\"token punctuation\">.<\/span>ivArticle<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>icon_qq<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    holder<span class=\"token punctuation\">.<\/span>tvTitle<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;Title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    holder<span class=\"token punctuation\">.<\/span>tvAuthor<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;Author&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u5173\u4e8e onBindViewHolder() \u7684\u8c03\u7528\u89c4\u5f8b&#xff1a;<\/p>\n<ul>\n<li>\u6bcf\u5f53\u4e00\u4e2a item \u9700\u8981\u663e\u793a\/\u91cd\u7ed8\u65f6\u90fd\u4f1a\u89e6\u53d1<\/li>\n<li>\u4e0a\u4e0b\u6ed1\u52a8\u65f6&#xff0c;\u56e0\u4e3a ViewHolder \u590d\u7528&#xff0c;\u4f1a\u9891\u7e41\u89e6\u53d1\u7ed1\u5b9a\u903b\u8f91<\/li>\n<li>position \u4ece 0 \u5f00\u59cb&#xff0c;\u5bf9\u5e94\u6570\u636e\u6e90\u4e0b\u6807<\/li>\n<\/ul>\n<hr \/>\n<h3>7. \u5f15\u5165\u6570\u636e\u6a21\u578b&#xff1a;Article &#043; ArrayList<\/h3>\n<h4>7.1 \u5728 Adapter \u4e2d\u6301\u6709\u6570\u636e\u6e90&#xff0c;\u5e76\u63d0\u4f9b setArticles()<\/h4>\n<p><span class=\"token keyword\">private<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">String<\/span> TAG <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;ArticleAdapter&#034;<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">private<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles<span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token class-name\">ArticleAdapter<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p><span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> <span class=\"token function\">getArticles<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> articles<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">setArticles<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>articles <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token comment\">\/\/\u544a\u8bc9adapter&#xff0c;\u548c\u4f60\u5173\u8054\u7684\u6570\u636e\u6e90\u6709\u53d8\u5316&#xff0c;\u8bf7\u91cd\u65b0\u6839\u636e\u6570\u636e\u505a\u51fa\u8c03\u6574<\/span><br \/>\n    <span class=\"token function\">notifyDataSetChanged<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token class-name\">Log<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">i<\/span><span class=\"token punctuation\">(<\/span>TAG<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;ArticleAdapter:  articles.size &#061; &#034;<\/span> <span class=\"token operator\">&#043;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u5173\u952e\u70b9&#xff1a;<\/p>\n<ul>\n<li>\u53ea\u6539\u6570\u636e\u6e90\u4e0d\u901a\u77e5 Adapter&#xff0c;\u754c\u9762\u4e0d\u4f1a\u5237\u65b0<\/li>\n<li>notifyDataSetChanged() \u662f\u5168\u91cf\u5237\u65b0&#xff08;\u7b80\u5355\u76f4\u63a5&#xff0c;\u4f46\u4ee3\u4ef7\u8f83\u5927&#xff09;<\/li>\n<\/ul>\n<h4>7.2 \u5b9a\u4e49 Article \u6a21\u578b<\/h4>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Article<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">String<\/span> title<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u6807\u9898<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">String<\/span> desc<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u63cf\u8ff0<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">String<\/span> anthor<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u4f5c\u8005<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">long<\/span> publish<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u53d1\u5e03\u65f6\u95f4<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">int<\/span> picture<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u56fe\u7247\u8d44\u6e90<\/span><\/p>\n<p>  <span class=\"token comment\">\/\/ get\u3001set<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<h4>7.3 \u7528 position \u9a71\u52a8\u7ed1\u5b9a&#xff1a;\u6570\u636e\u6e90\u4e0e item \u4e00\u4e00\u5bf9\u5e94<\/h4>\n<p><span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onBindViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">ArticleAdapter<span class=\"token punctuation\">.<\/span>MyViewHolder<\/span> holder<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token class-name\">Log<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">i<\/span><span class=\"token punctuation\">(<\/span>TAG<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;onBindViewHolder: position &#061;&#034;<\/span> <span class=\"token operator\">&#043;<\/span> position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token class-name\">Article<\/span> article <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span>position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    holder<span class=\"token punctuation\">.<\/span>ivPicture<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    holder<span class=\"token punctuation\">.<\/span>tvTitle<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    holder<span class=\"token punctuation\">.<\/span>tvAnthor<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getAnthor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u5e76\u786e\u4fdd getItemCount() \u8fd4\u56de\u6b63\u786e\u957f\u5ea6&#xff0c;\u907f\u514d\u6570\u7ec4\u8d8a\u754c&#xff1a;<\/p>\n<p><span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token function\">getItemCount<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n<span class=\"token comment\">\/\/        if (articles !&#061; null) {<\/span><br \/>\n<span class=\"token comment\">\/\/            return articles.size();<\/span><br \/>\n<span class=\"token comment\">\/\/        } else {<\/span><br \/>\n<span class=\"token comment\">\/\/            return 0;<\/span><br \/>\n<span class=\"token comment\">\/\/        }<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> articles <span class=\"token operator\">!&#061;<\/span> <span class=\"token keyword\">null<\/span> <span class=\"token operator\">?<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">:<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<hr \/>\n<h3>8. \u5217\u8868\u6570\u636e\u66f4\u65b0&#xff1a;\u5237\u65b0\u5355\u6761 vs \u5237\u65b0\u5168\u91cf<\/h3>\n<h4>8.1 \u70b9\u51fb\u6309\u94ae\u52a0\u8f7d\u6570\u636e&#xff1a;\u5fc5\u987b\u901a\u77e5 Adapter<\/h4>\n<p>\u6309\u94ae\u89e6\u53d1\u52a0\u8f7d&#xff1a;<\/p>\n<p><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>btn_load<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">setOnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">View<span class=\"token punctuation\">.<\/span>OnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">View<\/span> v<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token comment\">\/\/\u70b9\u51fb\u4e4b\u540e\u518d\u7ed9RecyclerView\u6570\u636e<\/span><br \/>\n        <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">createData<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        adapter<span class=\"token punctuation\">.<\/span><span class=\"token function\">setArticles<\/span><span class=\"token punctuation\">(<\/span>articles<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>setArticles \u4e2d\u901a\u77e5\u5237\u65b0&#xff1a;<\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">setArticles<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>articles <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token comment\">\/\/\u544a\u8bc9adapter&#xff0c;\u548c\u4f60\u5173\u8054\u7684\u6570\u636e\u6e90\u6709\u53d8\u5316&#xff0c;\u8bf7\u91cd\u65b0\u6839\u636e\u6570\u636e\u505a\u51fa\u8c03\u6574<\/span><br \/>\n    <span class=\"token function\">notifyDataSetChanged<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token class-name\">Log<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">i<\/span><span class=\"token punctuation\">(<\/span>TAG<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;ArticleAdapter:  articles.size &#061; &#034;<\/span> <span class=\"token operator\">&#043;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<h4>8.2 \u4fee\u6539\u5355\u6761&#xff1a;notifyItemChanged(position)<\/h4>\n<p><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>btn_modify<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">setOnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">View<span class=\"token punctuation\">.<\/span>OnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">View<\/span> v<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles <span class=\"token operator\">&#061;<\/span> adapter<span class=\"token punctuation\">.<\/span><span class=\"token function\">getArticles<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">Article<\/span> article <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        article<span class=\"token punctuation\">.<\/span><span class=\"token function\">setTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u6211\u4fee\u6539\u4e86\u7b2c\u4e8c\u6761\u6570\u636e\u7684\u6807\u9898&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token comment\">\/\/                adapter.notifyDataSetChanged();<\/span><br \/>\n        <span class=\"token comment\">\/\/\u6839\u636eposition\u5355\u72ec\u5237\u65b0\u67d0\u4e2aitem<\/span><br \/>\n        adapter<span class=\"token punctuation\">.<\/span><span class=\"token function\">notifyItemChanged<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<h4>8.3 \u5220\u9664\u5355\u6761&#xff1a;\u5148\u6539\u6570\u636e\u6e90&#xff0c;\u518d notifyItemRemoved<\/h4>\n<p><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>btn_remove<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">setOnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">View<span class=\"token punctuation\">.<\/span>OnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n      <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n      <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">View<\/span> v<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n          <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles <span class=\"token operator\">&#061;<\/span> adapter<span class=\"token punctuation\">.<\/span><span class=\"token function\">getArticles<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n          articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">remove<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n          <span class=\"token class-name\">Log<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">i<\/span><span class=\"token punctuation\">(<\/span>TAG<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;onClick: articles size &#061; &#034;<\/span> <span class=\"token operator\">&#043;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n          <span class=\"token comment\">\/\/\u5bf9\u5f53\u4e2aitem\u505a\u79fb\u9664\u64cd\u4f5c<\/span><br \/>\n          adapter<span class=\"token punctuation\">.<\/span><span class=\"token function\">notifyItemRemoved<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>          <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles1 <span class=\"token operator\">&#061;<\/span> adapter<span class=\"token punctuation\">.<\/span><span class=\"token function\">getArticles<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n          <span class=\"token class-name\">Log<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">i<\/span><span class=\"token punctuation\">(<\/span>TAG<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;onClick: articles size &#061; &#034;<\/span> <span class=\"token operator\">&#043;<\/span> articles1<span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token comment\">\/\/                adapter.notifyDataSetChanged();<\/span><br \/>\n      <span class=\"token punctuation\">}<\/span><br \/>\n  <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>\u6ce8\u610f\u70b9&#xff08;\u975e\u5e38\u5173\u952e&#xff09;&#xff1a;<\/p>\n<ul>\n<li>notifyItemRemoved(position) \u53ea\u662f\u5728 UI \u5c42\u544a\u8bc9 RecyclerView \u201c\u8fd9\u4e2a\u4f4d\u7f6e\u7684 item \u88ab\u79fb\u9664\u4e86\u201d<\/li>\n<li>\u771f\u6b63\u7684\u6570\u636e\u5220\u9664\u5fc5\u987b\u540c\u6b65\u53d1\u751f&#xff08;\u5982 articles.remove(position)&#xff09;&#xff0c;\u5426\u5219\u4e0b\u4e00\u6b21\u7ed1\u5b9a\u4ecd\u4f1a\u9519\u4f4d\u6216\u5d29\u6e83<\/li>\n<\/ul>\n<hr \/>\n<h3>9. \u591a ViewType&#xff1a;\u4e00\u56fe \/ \u4e24\u56fe \/ \u4e09\u56fe \/ \u5e7f\u544a\u6df7\u6392<\/h3>\n<p>\u5f53\u5217\u8868\u4e2d\u5b58\u5728\u4e0d\u540c\u6837\u5f0f item \u65f6&#xff0c;\u9700\u8981\u4f7f\u7528 getItemViewType() &#043; \u591a\u4e2a ViewHolder\u3002<\/p>\n<h4>9.1 \u6570\u636e\u6a21\u578b\u6269\u5c55&#xff1a;\u66f4\u591a\u56fe\u7247\u5b57\u6bb5 &#043; \u5e7f\u544a\u5b57\u6bb5<\/h4>\n<p><span class=\"token keyword\">package<\/span> <span class=\"token namespace\">com<span class=\"token punctuation\">.<\/span>android_route<span class=\"token punctuation\">.<\/span>recyclerview<span class=\"token punctuation\">.<\/span>model<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Article<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">String<\/span> title<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u6807\u9898<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">String<\/span> desc<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u63cf\u8ff0<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">String<\/span> anthor<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u4f5c\u8005<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">long<\/span> publish<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u53d1\u5e03\u65f6\u95f4<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">int<\/span> picture<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u56fe\u7247\u8d44\u6e901<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">int<\/span> picture2<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u56fe\u7247\u8d44\u6e902<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">int<\/span> picture3<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u56fe\u7247\u8d44\u6e903<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">boolean<\/span> idAd<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u5f53\u524d\u7684\u8d44\u8baf\u662f\u4e0d\u662f\u5e7f\u544a<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">int<\/span> adPicture<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u5e7f\u544a\u5bf9\u5e94\u7684\u56fe\u7247\u8d44\u6e90<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">boolean<\/span> check<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u662f\u5426\u88ab\u52fe\u9009<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">boolean<\/span> idAd<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> adPicture<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>idAd <span class=\"token operator\">&#061;<\/span> idAd<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>adPicture <span class=\"token operator\">&#061;<\/span> adPicture<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span> title<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">String<\/span> anthor<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> picture<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>title <span class=\"token operator\">&#061;<\/span> title<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>anthor <span class=\"token operator\">&#061;<\/span> anthor<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>picture <span class=\"token operator\">&#061;<\/span> picture<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ get set<\/span><\/p>\n<p><span class=\"token punctuation\">}<\/span><\/p>\n<h4>9.2 \u6784\u9020\u6570\u636e&#xff1a;\u63d2\u5165\u5e7f\u544a\u4e0e\u591a\u56fe item<\/h4>\n<p><span class=\"token keyword\">private<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> <span class=\"token function\">createData<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u8fbd\u5b81\u6e05\u539f\u62bd\u6c34\u84c4\u80fd\u7535\u7ad9\u6700\u540e\u4e00\u53f0\u5b9a\u5b50\u540a\u88c5\u5b8c\u6210&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u4eba\u6c11\u7f51-\u56fe\u7247\u9891\u9053&#xff0c;\u4f9b\u7a3f&#xff1a;\u4eba\u6c11\u8d44\u8baf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u901a\u884c\u65f6\u95f4\u518d\u7f29\u77ed&#xff01;\u5e7f\u6e5b\u9ad8\u94c1\u4f5b\u5c71\u7ad9\u5efa\u8bbe\u6b63\u5f0f\u542f\u52a8&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u4eba\u6c11\u7f51&#xff0d;\u5e7f\u4e1c\u9891\u9053&#xff0c;\u4f9b\u7a3f&#xff1a;\u4eba\u6c11\u8d44\u8baf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;19\u5c81\u676d\u5dde\u5e05\u5c0f\u4f19\u7b2c\u4e00\u540d&#xff0c;\u8fd8\u6709\u4eba\u6293\u5230\u4e00\u53ea\u7532\u9c7c&#xff01;\u4eca\u65e93000\u591a\u4eba\u5728\u94b1\u5858\u6c5f\u8fb9&#xff0c;\u592a\u6b22\u4e50\u4e86&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u676d\u5dde\u7f51&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_3<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token class-name\">Article<\/span> article4 <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4eca\u65e5\u8d77\u201c\u4e24\u6c5f\u5c0f\u6e21\u201d\u822a\u7ebf\u6062\u590d\u6b63\u5e38\u8fd0\u8425&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u4e0a\u6e38\u65b0\u95fb&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_4<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    article4<span class=\"token punctuation\">.<\/span><span class=\"token function\">setPicture2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_12<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span>article4<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e2d\u56fd\u592a\u4fdd\u5c0f\u6392\u7403\u590f\u4ee4\u8425\u5728\u6f33\u5dde\u706b\u70ed\u542f\u822a&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u56fd\u9645\u65f6\u4e8b\u8bb2\u89e3&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_5<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u594b\u529b\u63a8\u52a8\u6c11\u65cf\u5730\u533a\u9ad8\u8d28\u91cf\u53d1\u5c55\u548c\u73b0\u4ee3\u5316\u5efa\u8bbe\u8fc8\u51fa\u65b0\u6b65\u4f10&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u5f53\u4ee3\u5148\u950b\u7f51&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_6<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token class-name\">Article<\/span> article7 <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u76f8\u4fe1\u9752\u6625\u7684\u529b\u91cf&#xff5c;\u5199\u5728\u6211\u77012024\u5e74\u4e07\u540d\u5927\u5b66\u751f\u5fd7\u613f\u670d\u52a1\u897f\u90e8\u8ba1\u5212\u51fa\u5f81\u4e4b\u9645&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u4eba\u6c11\u7f51-\u56fe\u7247\u9891\u9053&#xff0c;\u4f9b\u7a3f&#xff1a;\u4eba\u6c11\u8d44\u8baf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_7<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    article7<span class=\"token punctuation\">.<\/span><span class=\"token function\">setPicture2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_5<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span>article7<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u91cf\u8eab\u5b9a\u5236\u201c\u6d77\u5916\u8ba2\u5355\u201d \u8d35\u5dde\u6c7d\u8f66\u5236\u9020\u5f00\u62d3\u56fd\u9645\u5e02\u573a&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u5f53\u4ee3\u5148\u950b\u7f51&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_8<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u52bf\u4e0d\u53ef\u6321\u2026\u2026\u5728\u8fd9\u91cc&#xff0c;\u4e61\u6751\u632f\u5174\u7684\u65b0\u5f15\u64ce\u6b63\u53d1\u51fa\u5f3a\u52b2\u52a8\u529b&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u9c81\u7f51&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_9<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u83cf\u6cfd\u804c\u4e1a\u5b66\u9662\u53ec\u5f002024\u5c4a\u6bd5\u4e1a\u751f\u7b2c\u4e8c\u8f6e\u5c31\u4e1a\u6838\u67e5\u5de5\u4f5c\u90e8\u7f72\u4f1a&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u5927\u4f17\u62a5\u4e1a\u00b7\u9f50\u9c81\u58f9\u70b9&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_10<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u83cf\u6cfd\u804c\u4e1a\u5b66\u9662\u5b66\u524d\u6559\u80b2\u7cfb&#xff08;\u80b2\u4e2d\u6559\u80b2\u5b66\u9662&#xff09;\u65a9\u83b7\u7701\u7ea7\u5927\u8d5b\u4e00\u7b49\u5956&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u897f\u5b89\u5feb\u7ebf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_11<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token class-name\">Article<\/span> article12 <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u83cf\u6cfd\u804c\u4e1a\u5b66\u9662\u4e00\u7c7b\u6559\u5b66\u5927\u8d5b&#xff0c;\u4e8c\u7b49\u5956&#043;2&#xff01;&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u5927\u4f17\u62a5\u4e1a\u00b7\u9f50\u9c81\u58f9\u70b9&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_12<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    article12<span class=\"token punctuation\">.<\/span><span class=\"token function\">setPicture2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_3<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    article12<span class=\"token punctuation\">.<\/span><span class=\"token function\">setPicture3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_16<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span>article12<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e2d\u592e\u6c14\u8c61\u53f0\u505c\u6b62\u5bf9\u201c\u683c\u7f8e\u201d\u7f16\u53f7 \u6e56\u5357\u8fbd\u5b81\u5409\u6797\u7b49\u5730\u4ecd\u6709\u5f3a\u964d\u96e8&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u56fd\u9645\u65f6\u4e8b\u8bb2\u89e3&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_13<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e60\u6c34\u4ed9\u6e90\u9547&#xff1a;\u6e05\u51c9\u5c71\u6c34\u5f15\u5ba2\u6765 \u6d88\u590f\u907f\u6691\u4eba\u6c14\u8db3&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u591a\u5f69\u8d35\u5dde\u7f51&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_14<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e60\u6c34\u53bf\u5be8\u575d\u9547&#xff1a;\u6e05\u51c9\u907f\u6691\u5730 \u5eb7\u517b\u7b2c\u4e8c\u4e61&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u591a\u5f69\u8d35\u5dde\u7f51&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_15<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u8d64\u6c34\u5e02\u5143\u539a\u9547&#xff1a;\u65b0\u54c1\u8354\u679d\u51fa\u5c71\u8bb0&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u4eba\u6c11\u7f51-\u56fe\u7247\u9891\u9053&#xff0c;\u4f9b\u7a3f&#xff1a;\u4eba\u6c11\u8d44\u8baf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_16<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e60\u6c34\u4e09\u5c94\u6cb3\u9547\u5c0f\u5c0f\u9519\u8f66\u9053 \u7545\u901a\u51fa\u884c\u6696\u6c11\u5fc3&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u6e56\u5357\u65e5\u62a5&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_17<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e60\u6c34\u571f\u57ce\u9547\u793e\u4f1a\u5b9e\u8df5\u6d3b\u52a8\u4e30\u5bcc\u5b66\u751f\u5047\u671f\u751f\u6d3b&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u4e0a\u6d77\u54a8\u8be2&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_18<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u8d64\u6c34\u5efa\u5f3a\u201c\u5c0f\u7ad9\u70b9\u201d\u91ca\u653e\u4e61\u6751\u632f\u5174\u65b0\u52a8\u80fd&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u798f\u5efa\u65b0\u95fb\u7f51&#xff0c;\u4f9b\u7a3f&#xff1a;\u4eba\u6c11\u8d44\u8baf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_19<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e60\u6c34\u540c\u6c11\u9547&#xff1a;\u706b\u9f99\u679c\u559c\u4e30\u6536 \u679c\u519c\u7b11\u5f00\u989c&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u4e0a\u6e38\u65b0\u95fb&#xff0c;\u4f9b\u7a3f&#xff1a;\u4eba\u6c11\u8d44\u8baf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_20<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token boolean\">true<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>bg_ad1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">10<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token boolean\">true<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>bg_ad2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> articles<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<h4>9.3 \u591a ViewHolder&#xff1a;\u56db\u79cd\u6837\u5f0f\u56db\u4e2a\u5185\u90e8\u7c7b<\/h4>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">MyViewHolder<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span><span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> ivPicture<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvTitle<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvAnthor<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        ivPicture <span class=\"token operator\">&#061;<\/span> view1<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_article<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tvTitle <span class=\"token operator\">&#061;<\/span> view1<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_article_title<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tvAnthor <span class=\"token operator\">&#061;<\/span> view1<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_article_author<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">MyViewHolder2<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span><span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> image1<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> image2<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvTitle<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvAnthor<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        image1 <span class=\"token operator\">&#061;<\/span> view2<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>image1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        image2 <span class=\"token operator\">&#061;<\/span> view2<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>image2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tvTitle <span class=\"token operator\">&#061;<\/span> view2<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>title<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tvAnthor <span class=\"token operator\">&#061;<\/span> view2<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_author<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">MyViewHolder3<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span><span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> image1<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> image2<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> image3<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvTitle<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvAnthor<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        image1 <span class=\"token operator\">&#061;<\/span> view3<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>image1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        image2 <span class=\"token operator\">&#061;<\/span> view3<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>image2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        image3 <span class=\"token operator\">&#061;<\/span> view3<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>image3<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tvTitle <span class=\"token operator\">&#061;<\/span> view3<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_article_title<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tvAnthor <span class=\"token operator\">&#061;<\/span> view3<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_article_author<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">AdViewHolder<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span><span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> ivPicture<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvClose<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">AdViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        ivPicture <span class=\"token operator\">&#061;<\/span> view4<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_ad<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tvClose <span class=\"token operator\">&#061;<\/span> view4<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_close<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u591a ViewType \u65f6&#xff0c;Adapter \u901a\u5e38\u5199\u6210\u4e0d\u6307\u5b9a\u6cdb\u578b&#xff1a;<\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">ArticleMoreAdapter<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>Adapter<\/span><span class=\"token punctuation\">{<\/span> <span class=\"token punctuation\">}<\/span><\/p>\n<h4>9.4 getItemViewType \u51b3\u5b9a\u5e03\u5c40\u7c7b\u578b&#xff0c;onCreateViewHolder \u8d1f\u8d23\u52a0\u8f7d\u5bf9\u5e94\u5e03\u5c40<\/h4>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token keyword\">int<\/span> ITEM_TYPE_AD <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">4<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u5bf9\u5e94\u5e7f\u544a\u7684itemView<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token keyword\">int<\/span> ITEM_TYPE_ARTICLE_3 <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">3<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u5bf9\u5e943\u5f20\u56fe\u7247\u7684itemView<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token keyword\">int<\/span> ITEM_TYPE_ARTICLE_2 <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u5bf9\u5e942\u5f20\u56fe\u7247itemView<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token keyword\">int<\/span> ITEM_TYPE_ARTICLE_1 <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u5bf9\u5e941\u5f20\u56fe\u7247\u7684itemView<\/span><\/p>\n<p><span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token function\">getItemViewType<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token class-name\">Article<\/span> article <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span>position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">isIdAd<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> ITEM_TYPE_AD<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">!&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token operator\">&amp;&amp;<\/span> article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token operator\">&amp;&amp;<\/span> article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> ITEM_TYPE_ARTICLE_1<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">!&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token operator\">&amp;&amp;<\/span> article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">!&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token operator\">&amp;&amp;<\/span> article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> ITEM_TYPE_ARTICLE_2<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> ITEM_TYPE_ARTICLE_3<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token annotation punctuation\">&#064;NonNull<\/span><br \/>\n<span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> <span class=\"token function\">onCreateViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">ViewGroup<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> viewType<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">switch<\/span> <span class=\"token punctuation\">(<\/span>viewType<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_ARTICLE_1<span class=\"token operator\">:<\/span><br \/>\n            view1 <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">LayoutInflater<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span>parent<span class=\"token punctuation\">.<\/span><span class=\"token function\">getContext<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                    <span class=\"token punctuation\">.<\/span><span class=\"token function\">inflate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>item_article_picture1<span class=\"token punctuation\">,<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">return<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span>view1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_ARTICLE_2<span class=\"token operator\">:<\/span><br \/>\n            view2 <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">LayoutInflater<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span>parent<span class=\"token punctuation\">.<\/span><span class=\"token function\">getContext<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                    <span class=\"token punctuation\">.<\/span><span class=\"token function\">inflate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>item_article_picture2<span class=\"token punctuation\">,<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">return<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">MyViewHolder2<\/span><span class=\"token punctuation\">(<\/span>view2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_ARTICLE_3<span class=\"token operator\">:<\/span><br \/>\n            view3 <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">LayoutInflater<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span>parent<span class=\"token punctuation\">.<\/span><span class=\"token function\">getContext<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                    <span class=\"token punctuation\">.<\/span><span class=\"token function\">inflate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>item_article_picture3<span class=\"token punctuation\">,<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">return<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">MyViewHolder3<\/span><span class=\"token punctuation\">(<\/span>view3<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_AD<span class=\"token operator\">:<\/span><br \/>\n            view4 <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">LayoutInflater<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span>parent<span class=\"token punctuation\">.<\/span><span class=\"token function\">getContext<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                    <span class=\"token punctuation\">.<\/span><span class=\"token function\">inflate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>item_article_ad<span class=\"token punctuation\">,<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">return<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">AdViewHolder<\/span><span class=\"token punctuation\">(<\/span>view4<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> <span class=\"token keyword\">null<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<h4>9.5 onBindViewHolder&#xff1a;\u6839\u636e viewType \u5f3a\u8f6c\u5e76\u7ed1\u5b9a\u5b57\u6bb5<\/h4>\n<p><span class=\"token annotation punctuation\">&#064;NonNull<\/span><br \/>\n<span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onBindViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> holder<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token class-name\">Log<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">i<\/span><span class=\"token punctuation\">(<\/span>TAG<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;onBindViewHolder: position &#061;&#034;<\/span> <span class=\"token operator\">&#043;<\/span> position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token comment\">\/\/\u901a\u8fc7position\u83b7\u53d6\u5bf9\u5e94\u7684viewtype<\/span><br \/>\n    <span class=\"token keyword\">int<\/span> itemViewType <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">getItemViewType<\/span><span class=\"token punctuation\">(<\/span>position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token class-name\">Article<\/span> article <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span>position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">switch<\/span> <span class=\"token punctuation\">(<\/span>itemViewType<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_ARTICLE_2<span class=\"token operator\">:<\/span><br \/>\n            <span class=\"token class-name\">MyViewHolder2<\/span> holder2 <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">MyViewHolder2<\/span><span class=\"token punctuation\">)<\/span> holder<span class=\"token punctuation\">;<\/span><br \/>\n            holder2<span class=\"token punctuation\">.<\/span>image1<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holder2<span class=\"token punctuation\">.<\/span>image2<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holder2<span class=\"token punctuation\">.<\/span>tvTitle<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holder2<span class=\"token punctuation\">.<\/span>tvAnthor<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getAnthor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">break<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_ARTICLE_3<span class=\"token operator\">:<\/span><br \/>\n            <span class=\"token class-name\">MyViewHolder3<\/span> holder3 <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">MyViewHolder3<\/span><span class=\"token punctuation\">)<\/span> holder<span class=\"token punctuation\">;<\/span><br \/>\n            holder3<span class=\"token punctuation\">.<\/span>image1<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holder3<span class=\"token punctuation\">.<\/span>image2<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holder3<span class=\"token punctuation\">.<\/span>image3<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holder3<span class=\"token punctuation\">.<\/span>tvTitle<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holder3<span class=\"token punctuation\">.<\/span>tvAnthor<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getAnthor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">break<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_AD<span class=\"token operator\">:<\/span><br \/>\n            <span class=\"token class-name\">AdViewHolder<\/span> holderAd <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">AdViewHolder<\/span><span class=\"token punctuation\">)<\/span> holder<span class=\"token punctuation\">;<\/span><br \/>\n            holderAd<span class=\"token punctuation\">.<\/span>ivPicture<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getAdPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">break<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">case<\/span> ITEM_TYPE_ARTICLE_1<span class=\"token operator\">:<\/span><br \/>\n        <span class=\"token keyword\">default<\/span><span class=\"token operator\">:<\/span><br \/>\n            <span class=\"token class-name\">MyViewHolder<\/span> holderSimple <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">)<\/span> holder<span class=\"token punctuation\">;<\/span><br \/>\n            holderSimple<span class=\"token punctuation\">.<\/span>ivPicture<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holderSimple<span class=\"token punctuation\">.<\/span>tvTitle<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            holderSimple<span class=\"token punctuation\">.<\/span>tvAnthor<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getAnthor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">break<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<hr \/>\n<h3>10. RecyclerView \u5206\u5272\u7ebf&#xff1a;\u4e09\u79cd\u5e38\u89c1\u5b9e\u73b0<\/h3>\n<h4>10.1 \u65b9\u5f0f\u4e00&#xff1a;\u5728 item \u5e03\u5c40\u4e2d\u201c\u753b\u201d\u5206\u5272\u7ebf<\/h4>\n<p>\u601d\u8def&#xff1a;\u628a item \u5185\u5bb9\u518d\u5305\u4e00\u5c42\u5e03\u5c40&#xff0c;\u5728\u6700\u5916\u5c42\u5e95\u90e8\u52a0 View \u5f53\u5206\u5272\u7ebf\u3002<\/p>\n<p><span class=\"token prolog\">&lt;?xml version&#061;&#034;1.0&#034; encoding&#061;&#034;utf-8&#034;?&gt;<\/span><br \/>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>androidx.constraintlayout.widget.ConstraintLayout<\/span> <span class=\"token attr-name\"><span class=\"token namespace\">xmlns:<\/span>android<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>http:\/\/schemas.android.com\/apk\/res\/android<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">xmlns:<\/span>app<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>http:\/\/schemas.android.com\/apk\/res-auto<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>match_parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>wrap_content<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>background<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;color\/white<span class=\"token punctuation\">&#034;<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/p>\n<p>    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>androidx.constraintlayout.widget.ConstraintLayout<\/span><br \/>\n        <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>match_parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n        <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>wrap_content<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n        <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>padding<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>12dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n        <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintStart_toStartOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n        <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintTop_toTopOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>parent<span class=\"token punctuation\">&#034;<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/p>\n<p>        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>ImageView<\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;&#043;id\/iv_picture<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>100dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>70dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>scaleType<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>centerCrop<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>src<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;drawable\/icon_logo<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintStart_toStartOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintTop_toTopOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>parent<span class=\"token punctuation\">&#034;<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><\/p>\n<p>        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>TextView<\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;&#043;id\/tv_title<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>0dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>wrap_content<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_marginLeft<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>8dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>ellipsize<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>end<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>maxLines<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>2<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>text<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898\u6211\u662f\u4e00\u4e2a\u6807\u9898<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>textColor<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;color\/black<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>textSize<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>18sp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintEnd_toEndOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintStart_toEndOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;id\/iv_picture<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintTop_toTopOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;id\/iv_picture<span class=\"token punctuation\">&#034;<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><\/p>\n<p>        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>TextView<\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;&#043;id\/tv_anthor<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>0dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>wrap_content<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_marginLeft<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>8dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>ellipsize<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>end<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>maxLines<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>1<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>text<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>\u6211\u662f\u4f5c\u8005\u6211\u662f\u4f5c\u8005\u6211\u662f\u4f5c\u8005<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>textSize<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>16sp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintBottom_toBottomOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;id\/iv_picture<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintEnd_toEndOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>layout_constraintStart_toEndOf<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;id\/iv_picture<span class=\"token punctuation\">&#034;<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><\/p>\n<p>    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>androidx.constraintlayout.widget.ConstraintLayout<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/p>\n<p>    <span class=\"token comment\">&lt;!&#8211;\u5728item\u5e03\u5c40\u4e2d\u76f4\u63a5\u6dfb\u52a01\u4e2a\u5206\u5272\u7ebf&#8211;&gt;<\/span><br \/>\n    <span class=\"token comment\">&lt;!&#8211; &lt;View<br \/>\n         android:layout_width&#061;&#034;match_parent&#034;<br \/>\n         android:layout_height&#061;&#034;5px&#034;<br \/>\n         android:background&#061;&#034;&#064;color\/my_blue&#034;<br \/>\n         app:layout_constraintBottom_toBottomOf&#061;&#034;parent&#034;<br \/>\n         app:layout_constraintStart_toStartOf&#061;&#034;parent&#034; \/&gt;&#8211;&gt;<\/span><br \/>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>androidx.constraintlayout.widget.ConstraintLayout<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/p>\n<h4>10.2 \u65b9\u5f0f\u4e8c&#xff1a;\u7cfb\u7edf DividerItemDecoration<\/h4>\n<p><span class=\"token comment\">\/\/\u6dfb\u52a0\u4e00\u4e2a\u5e38\u7528\u7684\u5206\u5272\u7ebf\u6837\u5f0f<\/span><br \/>\nrecyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">addItemDecoration<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">DividerItemDecoration<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">DividerItemDecoration<\/span><span class=\"token punctuation\">.<\/span>VERTICAL<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/\/\u8bbe\u7f6e\u9002\u914d\u5668<\/span><br \/>\n<span class=\"token class-name\">ArticleMoreAdapter<\/span> adapter <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ArticleMoreAdapter<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nrecyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setAdapter<\/span><span class=\"token punctuation\">(<\/span>adapter<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<h4>10.3 \u65b9\u5f0f\u4e09&#xff1a;\u81ea\u5b9a\u4e49 Drawable \u5206\u5272\u7ebf<\/h4>\n<p><span class=\"token comment\">\/\/\u6dfb\u52a0Drawable\u7c7b\u578b\u7684\u5206\u5272\u7ebf<\/span><br \/>\n<span class=\"token class-name\">DividerItemDecoration<\/span> decoration <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">DividerItemDecoration<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">DividerItemDecoration<\/span><span class=\"token punctuation\">.<\/span>VERTICAL<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\ndecoration<span class=\"token punctuation\">.<\/span><span class=\"token function\">setDrawable<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">getDrawable<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>item_div<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nrecyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">addItemDecoration<\/span><span class=\"token punctuation\">(<\/span>decoration<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<hr \/>\n<h3>11. Adapter \u4e0e\u5916\u90e8\u4ea4\u4e92&#xff1a;\u70b9\u51fb\u3001\u957f\u6309\u3001\u5173\u95ed\u5e7f\u544a<\/h3>\n<h4>11.1 \u5728 ViewHolder \u5185\u90e8\u5904\u7406\u201c\u5173\u95ed\u5e7f\u544a\u201d<\/h4>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">AdViewHolder<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> ivPicture<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> ivClose<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">AdViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        ivPicture <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_picture<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        ivClose <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_close<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        ivClose<span class=\"token punctuation\">.<\/span><span class=\"token function\">setOnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">View<span class=\"token punctuation\">.<\/span>OnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n            <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">View<\/span> v<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token comment\">\/\/\u83b7\u53d6\u5230\u5f53\u524dAdViewHolder\u5bf9\u5e94\u7684postion<\/span><br \/>\n                <span class=\"token keyword\">int<\/span> layoutPosition <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">getLayoutPosition<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">remove<\/span><span class=\"token punctuation\">(<\/span>layoutPosition<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token function\">notifyItemRemoved<\/span><span class=\"token punctuation\">(<\/span>layoutPosition<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u5b9e\u8df5\u5efa\u8bae&#xff1a;<\/p>\n<ul>\n<li>\u66f4\u7a33\u59a5\u7684 position \u83b7\u53d6\u65b9\u5f0f\u901a\u5e38\u662f getAdapterPosition() \/ getBindingAdapterPosition()&#xff0c;\u5e76\u5904\u7406 NO_POSITION&#xff0c;\u907f\u514d\u52a8\u753b\u6216\u5237\u65b0\u65f6 position \u5931\u6548\u5bfc\u81f4\u5d29\u6e83\u3002<\/li>\n<\/ul>\n<h4>11.2 \u901a\u8fc7\u63a5\u53e3\u56de\u8c03\u628a\u4e8b\u4ef6\u201c\u629b\u7ed9\u5916\u90e8\u201d<\/h4>\n<p>\u5b9a\u4e49\u56de\u8c03\u63a5\u53e3&#xff1a;<\/p>\n<p><span class=\"token keyword\">private<\/span> <span class=\"token class-name\">ArticleItemCallback<\/span> articleItemCallback<span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">interface<\/span> <span class=\"token class-name\">ArticleItemCallback<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token comment\">\/**<br \/>\n         * \u70b9\u51fb\u4e86\u4e00\u5f20\u56fe\u7247\u7684item<br \/>\n         *<br \/>\n         * &#064;param position<br \/>\n         * &#064;param article<br \/>\n         *\/<\/span><br \/>\n        <span class=\"token keyword\">void<\/span> <span class=\"token function\">onSimpleItemClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">Article<\/span> article<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/**<br \/>\n         * \u5bf9\u4e24\u5f20\u56fe\u7247\u7684item\u505a\u957f\u6309\u64cd\u4f5c<br \/>\n         *<br \/>\n         * &#064;param position<br \/>\n         * &#064;param article<br \/>\n         *\/<\/span><br \/>\n        <span class=\"token keyword\">void<\/span> <span class=\"token function\">onLongClickItem2Click<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">Article<\/span> article<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/**<br \/>\n         * \u70b9\u51fb\u4e86\u5e7f\u544a<br \/>\n         *<br \/>\n         * &#064;param position<br \/>\n         * &#064;param article<br \/>\n         *\/<\/span><br \/>\n        <span class=\"token keyword\">void<\/span> <span class=\"token function\">onAdClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">Article<\/span> article<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>\u5728\u4e0d\u540c ViewHolder \u91cc\u89e6\u53d1\u56de\u8c03&#xff1a;<\/p>\n<p><span class=\"token comment\">\/**<br \/>\n * \u4e00\u5f20\u56fe\u7247item\u5bf9\u5e94\u7684viewholder<br \/>\n *\/<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">MyViewHolder<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> ivPicture<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvTitle<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvAnthor<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        ivPicture <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_picture<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tvTitle <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_title<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tvAnthor <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_anthor<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setOnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">View<span class=\"token punctuation\">.<\/span>OnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n            <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">View<\/span> v<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token keyword\">int<\/span> layoutPosition <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">getLayoutPosition<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token class-name\">Article<\/span> article <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span>layoutPosition<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                articleItemCallback<span class=\"token punctuation\">.<\/span><span class=\"token function\">onSimpleItemClick<\/span><span class=\"token punctuation\">(<\/span>layoutPosition<span class=\"token punctuation\">,<\/span> article<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token comment\">\/\/                    activity.startActivity(new Intent(activity, ArticleDetailActivity.class));<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token comment\">\/**<br \/>\n * \u4e24\u5f20\u56fe\u7247\u7684ViewHolder<br \/>\n *\/<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">MyViewHolder2<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> ivPicture1<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> ivPicture2<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvTitle<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvAnthor<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        ivPicture1 <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_picture1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        ivPicture2 <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_picture2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tvTitle <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_title<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tvAnthor <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_anthor<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setOnLongClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">View<span class=\"token punctuation\">.<\/span>OnLongClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n            <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">boolean<\/span> <span class=\"token function\">onLongClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">View<\/span> v<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token keyword\">int<\/span> layoutPosition <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">getLayoutPosition<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token class-name\">Article<\/span> article <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span>layoutPosition<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                articleItemCallback<span class=\"token punctuation\">.<\/span><span class=\"token function\">onLongClickItem2Click<\/span><span class=\"token punctuation\">(<\/span>layoutPosition<span class=\"token punctuation\">,<\/span> article<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token comment\">\/**<br \/>\n * \u4e09\u5f20\u56fe\u7247\u7684ViewHolder<br \/>\n *\/<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">MyViewHolder3<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> ivPicture1<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> ivPicture2<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> ivPicture3<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvTitle<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvAnthor<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        ivPicture1 <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_picture1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        ivPicture2 <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_picture2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        ivPicture3 <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_picture3<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tvTitle <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_title<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tvAnthor <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_anthor<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token comment\">\/**<br \/>\n * \u5e7f\u544aViewHolder<br \/>\n *\/<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">AdViewHolder<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> ivPicture<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> ivClose<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">AdViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        ivPicture <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_picture<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        ivClose <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_close<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        ivClose<span class=\"token punctuation\">.<\/span><span class=\"token function\">setOnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">View<span class=\"token punctuation\">.<\/span>OnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n            <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">View<\/span> v<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token comment\">\/\/\u83b7\u53d6\u5230\u5f53\u524dAdViewHolder\u5bf9\u5e94\u7684postion<\/span><br \/>\n                <span class=\"token keyword\">int<\/span> layoutPosition <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">getLayoutPosition<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">remove<\/span><span class=\"token punctuation\">(<\/span>layoutPosition<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token function\">notifyItemRemoved<\/span><span class=\"token punctuation\">(<\/span>layoutPosition<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setOnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">View<span class=\"token punctuation\">.<\/span>OnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n            <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">View<\/span> v<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token keyword\">int<\/span> layoutPosition <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">getLayoutPosition<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token class-name\">Article<\/span> article <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span>layoutPosition<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                articleItemCallback<span class=\"token punctuation\">.<\/span><span class=\"token function\">onAdClick<\/span><span class=\"token punctuation\">(<\/span>layoutPosition<span class=\"token punctuation\">,<\/span> article<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u5916\u90e8 Activity \u5b9e\u73b0\u63a5\u53e3&#xff1a;<\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">ArticleMoreListActivity<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">AppCompatActivity<\/span> <span class=\"token keyword\">implements<\/span> <span class=\"token class-name\">ArticleMoreAdapter<span class=\"token punctuation\">.<\/span>ArticleItemCallback<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>\u5e76\u5b9e\u73b0\u56de\u8c03\u903b\u8f91&#xff1a;<\/p>\n<p><span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onSimpleItemClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">Article<\/span> article<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token class-name\">Toast<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">makeText<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">ArticleMoreListActivity<\/span><span class=\"token punctuation\">.<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u8df3\u8f6c\u5230\u5355\u5f20\u56fe\u7247\u5bf9\u5e94\u7684\u65b0\u95fb\u8d44\u8baf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">Toast<\/span><span class=\"token punctuation\">.<\/span>LENGTH_SHORT<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">show<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token function\">startActivity<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Intent<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">ArticleMoreListActivity<\/span><span class=\"token punctuation\">.<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">ArticleDetailActivity<\/span><span class=\"token punctuation\">.<\/span><span class=\"token keyword\">class<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onLongClickItem2Click<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">Article<\/span> article<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token class-name\">Toast<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">makeText<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">ArticleMoreListActivity<\/span><span class=\"token punctuation\">.<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u4f60\u957f\u6309\u4e862\u5f20\u56fe\u7247\u5bf9\u5e94\u7684\u5e03\u5c40&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">Toast<\/span><span class=\"token punctuation\">.<\/span>LENGTH_SHORT<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">show<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onAdClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">Article<\/span> article<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token class-name\">Toast<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">makeText<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">ArticleMoreListActivity<\/span><span class=\"token punctuation\">.<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;\u51c6\u5907\u524d\u5f80\u5e7f\u544a\u8be6\u60c5\u9875&#8230;&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">Toast<\/span><span class=\"token punctuation\">.<\/span>LENGTH_SHORT<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">show<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<hr \/>\n<h3>12. ViewHolder \u590d\u7528\u5bfc\u81f4 CheckBox \u72b6\u6001\u9519\u4e71&#xff1a;\u7528\u6570\u636e\u6e90\u201c\u8bb0\u4f4f\u72b6\u6001\u201d<\/h3>\n<p>RecyclerView \u4f1a\u590d\u7528 ViewHolder&#xff1a;\u5f53\u4e00\u4e2a item \u6ed1\u51fa\u5c4f\u5e55&#xff0c;\u5b83\u5bf9\u5e94\u7684 ViewHolder \u53ef\u80fd\u88ab\u590d\u7528\u6765\u5c55\u793a\u53e6\u4e00\u4e2a\u4f4d\u7f6e\u7684\u6570\u636e\u3002\u5982\u679c \u53ea\u6539 CheckBox UI&#xff0c;\u4e0d\u628a\u72b6\u6001\u5199\u56de\u6570\u636e\u6e90&#xff0c;\u5c31\u4f1a\u51fa\u73b0&#xff1a;<\/p>\n<ul>\n<li>\u52fe\u9009\u4e86 A<\/li>\n<li>\u6ed1\u52a8\u5217\u8868\u540e&#xff0c;B \u7684 CheckBox \u4e5f\u83ab\u540d\u88ab\u52fe\u4e0a<\/li>\n<\/ul>\n<h4>12.1 \u5728\u6a21\u578b\u4e2d\u589e\u52a0\u5b57\u6bb5 check&#xff0c;\u5e76\u5728\u70b9\u51fb\u65f6\u5199\u56de<\/h4>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">MyViewHolder<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>        <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> ivPicture<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvTitle<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvAnthor<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">CheckBox<\/span> checkBox<span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            ivPicture <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_picture<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            tvTitle <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_title<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            tvAnthor <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_anthor<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            checkBox <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>check_box<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            checkBox<span class=\"token punctuation\">.<\/span><span class=\"token function\">setOnCheckedChangeListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">CompoundButton<span class=\"token punctuation\">.<\/span>OnCheckedChangeListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n                <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onCheckedChanged<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">CompoundButton<\/span> buttonView<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">boolean<\/span> isChecked<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                    <span class=\"token class-name\">Article<\/span> article <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">getLayoutPosition<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                    article<span class=\"token punctuation\">.<\/span><span class=\"token function\">setCheck<\/span><span class=\"token punctuation\">(<\/span>isChecked<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token punctuation\">}<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<h4>12.2 \u5728 onBindViewHolder \u4e2d\u201c\u7528\u6570\u636e\u91cd\u7f6e UI\u201d<\/h4>\n<p><span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onBindViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">ArticleCheckAdapter<span class=\"token punctuation\">.<\/span>MyViewHolder<\/span> holder<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token class-name\">Log<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">i<\/span><span class=\"token punctuation\">(<\/span>TAG<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;onBindViewHolder: position &#061;&#034;<\/span> <span class=\"token operator\">&#043;<\/span> position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token class-name\">Article<\/span> article <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span>position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    holder<span class=\"token punctuation\">.<\/span>ivPicture<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    holder<span class=\"token punctuation\">.<\/span>tvTitle<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    holder<span class=\"token punctuation\">.<\/span>tvAnthor<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getAnthor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    holder<span class=\"token punctuation\">.<\/span>checkBox<span class=\"token punctuation\">.<\/span><span class=\"token function\">setChecked<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">isCheck<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u5b9e\u8df5\u5efa\u8bae&#xff08;\u907f\u514d\u989d\u5916\u89e6\u53d1\u76d1\u542c&#xff09;&#xff1a;<\/p>\n<ul>\n<li>\u5728 setChecked() \u524d\u4e34\u65f6\u79fb\u9664\u76d1\u542c&#xff0c;\u518d\u6062\u590d\u76d1\u542c&#xff0c;\u53ef\u4ee5\u51cf\u5c11\u201c\u7ed1\u5b9a\u65f6\u89e6\u53d1 onCheckedChanged\u201d\u7684\u526f\u4f5c\u7528&#xff08;\u5c24\u5176\u662f\u6709\u590d\u6742\u903b\u8f91\u65f6&#xff09;\u3002<\/li>\n<\/ul>\n<hr \/>\n<h3>13. GridLayoutManager&#xff1a;\u7f51\u683c\u5e03\u5c40\u793a\u4f8b<\/h3>\n<p>Activity&#xff1a;<\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">GridRecycerViewActivity<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">AppCompatActivity<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">protected<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onCreate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">Bundle<\/span> savedInstanceState<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">onCreate<\/span><span class=\"token punctuation\">(<\/span>savedInstanceState<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token function\">setContentView<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>activity_grid_recycer_view<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token class-name\">RecyclerView<\/span> recyclerView <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>recycler_view<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/\u7f51\u683c\u5e03\u5c40\u7ba1\u7406\u5668  \u6307\u5b9a\u4e00\u884c\u663e\u793a2\u4e2aitem<\/span><br \/>\n        <span class=\"token class-name\">GridLayoutManager<\/span> gridLayoutManager <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">GridLayoutManager<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">3<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        recyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setLayoutManager<\/span><span class=\"token punctuation\">(<\/span>gridLayoutManager<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token class-name\">DividerItemDecoration<\/span> decor <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">DividerItemDecoration<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">DividerItemDecoration<\/span><span class=\"token punctuation\">.<\/span>VERTICAL<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        recyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">addItemDecoration<\/span><span class=\"token punctuation\">(<\/span>decor<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token class-name\">DividerItemDecoration<\/span> decor1 <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">DividerItemDecoration<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">DividerItemDecoration<\/span><span class=\"token punctuation\">.<\/span>HORIZONTAL<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        recyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">addItemDecoration<\/span><span class=\"token punctuation\">(<\/span>decor1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> imsResIds <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">createData<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">GridAdapter<\/span> adapter <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">GridAdapter<\/span><span class=\"token punctuation\">(<\/span>imsResIds<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/\u8bbe\u7f6e\u9002\u914d\u5668<\/span><br \/>\n        recyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setAdapter<\/span><span class=\"token punctuation\">(<\/span>adapter<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> <span class=\"token function\">createData<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> imsResIds <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_3<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_4<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_5<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_6<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_7<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_8<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_9<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_10<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_11<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_12<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_13<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_14<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_15<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_16<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_17<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_18<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_19<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        imsResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_20<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> imsResIds<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>Adapter&#xff1a;<\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">GridAdapter<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>Adapter<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">GridAdapter<span class=\"token punctuation\">.<\/span>MyViewHolder<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">List<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> dataList<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">GridAdapter<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">List<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> dataList<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>dataList <span class=\"token operator\">&#061;<\/span> dataList<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token annotation punctuation\">&#064;NonNull<\/span><br \/>\n    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder<\/span> <span class=\"token function\">onCreateViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">ViewGroup<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> viewType<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token class-name\">View<\/span> view <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">LayoutInflater<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span>parent<span class=\"token punctuation\">.<\/span><span class=\"token function\">getContext<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                <span class=\"token punctuation\">.<\/span><span class=\"token function\">inflate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>item_demo_grid<span class=\"token punctuation\">,<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span>view<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onBindViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">MyViewHolder<\/span> holder<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token class-name\">Integer<\/span> resId <span class=\"token operator\">&#061;<\/span> dataList<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span>position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        holder<span class=\"token punctuation\">.<\/span>ivImg<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>resId<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token function\">getItemCount<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> dataList<span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">MyViewHolder<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">ImageView<\/span> ivImg<span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            ivImg <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_img<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u7f51\u683c item \u5e03\u5c40\u5efa\u8bae&#xff1a;<\/p>\n<ul>\n<li>item \u6839\u5e03\u5c40\u5bbd\u5ea6\u5e38\u7528 match_parent<\/li>\n<li>\u56fe\u7247\u53ef\u4f7f\u7528 centerCrop \u4fdd\u6301\u586b\u5145\u6548\u679c<\/li>\n<\/ul>\n<p><span class=\"token prolog\">&lt;?xml version&#061;&#034;1.0&#034; encoding&#061;&#034;utf-8&#034;?&gt;<\/span><span class=\"token comment\">&lt;!&#8211; res\/layout\/item_layout.xml &#8211;&gt;<\/span><br \/>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>LinearLayout<\/span> <span class=\"token attr-name\"><span class=\"token namespace\">xmlns:<\/span>android<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>http:\/\/schemas.android.com\/apk\/res\/android<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>match_parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>wrap_content<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>orientation<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>vertical<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>padding<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>8dp<span class=\"token punctuation\">&#034;<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/p>\n<p>    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>ImageView<\/span><br \/>\n        <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;&#043;id\/iv_img<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n        <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>match_parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n        <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>120dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n        <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>scaleType<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>centerCrop<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n        <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>src<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;drawable\/ic_article_1<span class=\"token punctuation\">&#034;<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><br \/>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>LinearLayout<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/p>\n<hr \/>\n<h3>14. StaggeredGridLayoutManager&#xff1a;\u7011\u5e03\u6d41\u793a\u4f8b<\/h3>\n<p>Activity&#xff1a;<\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StaggeredGridRecyclerViewActivity<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">AppCompatActivity<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">protected<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onCreate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">Bundle<\/span> savedInstanceState<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">onCreate<\/span><span class=\"token punctuation\">(<\/span>savedInstanceState<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token function\">setContentView<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>activity_staggered_grid_recycler_view<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token class-name\">RecyclerView<\/span> recyclerView <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>recycler_view<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">StaggeredGridLayoutManager<\/span> layout <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StaggeredGridLayoutManager<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">StaggeredGridLayoutManager<\/span><span class=\"token punctuation\">.<\/span>VERTICAL<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        recyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setLayoutManager<\/span><span class=\"token punctuation\">(<\/span>layout<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> data <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">createData<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">StaggeredGridAdapter<\/span> staggeredGridAdapter <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StaggeredGridAdapter<\/span><span class=\"token punctuation\">(<\/span>data<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        recyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setAdapter<\/span><span class=\"token punctuation\">(<\/span>staggeredGridAdapter<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> <span class=\"token function\">createData<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> pictureResIds <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        pictureResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>bg_picture_1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        pictureResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>bg_picture_2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        pictureResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>bg_picture_3<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        pictureResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>bg_picture_4<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        pictureResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>bg_picture_5<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        pictureResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>bg_picture_6<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        pictureResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>bg_picture_7<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        pictureResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>bg_picture_8<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        pictureResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>bg_picture_9<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        pictureResIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>bg_picture_10<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> pictureResIds<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>Adapter&#xff1a;<\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">StaggeredGridAdapter<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>Adapter<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">StaggeredGridAdapter<span class=\"token punctuation\">.<\/span>MyViewHolder<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">List<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> resIds<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">StaggeredGridAdapter<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">List<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> dataList<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>resIds <span class=\"token operator\">&#061;<\/span> dataList<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token annotation punctuation\">&#064;NonNull<\/span><br \/>\n    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder<\/span> <span class=\"token function\">onCreateViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">ViewGroup<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> viewType<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token class-name\">View<\/span> view <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">LayoutInflater<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span>parent<span class=\"token punctuation\">.<\/span><span class=\"token function\">getContext<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                <span class=\"token punctuation\">.<\/span><span class=\"token function\">inflate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>item_staggered_grid_picture<span class=\"token punctuation\">,<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span>view<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onBindViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">MyViewHolder<\/span> holder<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token class-name\">Integer<\/span> redId <span class=\"token operator\">&#061;<\/span> resIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span>position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        holder<span class=\"token punctuation\">.<\/span>imageView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>redId<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/\u628a position&#043;1\u7684\u7ed3\u679c\u8f6c\u4e3a\u5b57\u7b26\u4e32<\/span><br \/>\n        <span class=\"token class-name\">String<\/span> label <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">String<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">valueOf<\/span><span class=\"token punctuation\">(<\/span>position <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        holder<span class=\"token punctuation\">.<\/span>textView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>label<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token function\">getItemCount<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> resIds<span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">MyViewHolder<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">ImageView<\/span> imageView<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">TextView<\/span> textView<span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            imageView <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_img<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            textView <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>text_view<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>item \u5e03\u5c40&#xff08;\u56fe\u7247\u9ad8\u5ea6\u81ea\u9002\u5e94&#xff0c;\u6309\u5bbd\u5ea6\u7b49\u6bd4\u7f29\u653e&#xff09;&#xff1a;<\/p>\n<p><span class=\"token prolog\">&lt;?xml version&#061;&#034;1.0&#034; encoding&#061;&#034;utf-8&#034;?&gt;<\/span><br \/>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>androidx.cardview.widget.CardView<\/span> <span class=\"token attr-name\"><span class=\"token namespace\">xmlns:<\/span>android<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>http:\/\/schemas.android.com\/apk\/res\/android<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">xmlns:<\/span>app<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>http:\/\/schemas.android.com\/apk\/res-auto<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>wrap_content<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>wrap_content<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_margin<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>12dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>cardCornerRadius<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>12dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n    <span class=\"token attr-name\"><span class=\"token namespace\">app:<\/span>cardElevation<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>12dp<span class=\"token punctuation\">&#034;<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/p>\n<p>    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>LinearLayout<\/span><br \/>\n        <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>match_parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n        <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>wrap_content<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n        <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>orientation<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>vertical<span class=\"token punctuation\">&#034;<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/p>\n<p>        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>ImageView<\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;&#043;id\/iv_img<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>match_parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>wrap_content<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>adjustViewBounds<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>true<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>scaleType<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>fitXY<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>src<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;drawable\/bg_picture_2<span class=\"token punctuation\">&#034;<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><\/p>\n<p>        <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>TextView<\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>&#064;&#043;id\/text_view<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_width<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>match_parent<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_height<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>wrap_content<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>layout_margin<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>4dp<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>text<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>1<span class=\"token punctuation\">&#034;<\/span><\/span><br \/>\n            <span class=\"token attr-name\"><span class=\"token namespace\">android:<\/span>textAlignment<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">&#061;<\/span><span class=\"token punctuation\">&#034;<\/span>center<span class=\"token punctuation\">&#034;<\/span><\/span> <span class=\"token punctuation\">\/&gt;<\/span><\/span><br \/>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>LinearLayout<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/p>\n<p><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>androidx.cardview.widget.CardView<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><\/p>\n<hr \/>\n<h3>15. \u9644\u5f55&#xff1a;repomix \u6253\u5305\u4ee3\u7801&#xff08;\u539f\u6837\u6458\u5f55&#xff09;<\/h3>\n<p>\u4e0b\u9762\u4ee3\u7801\u6765\u81ea repomix-output.xml \u6253\u5305\u5185\u5bb9&#xff0c;\u6309\u6587\u4ef6\u5206\u6bb5\u539f\u6837\u5448\u73b0&#xff08;\u4e0d\u505a\u6539\u52a8&#xff09;&#xff0c;\u4fbf\u4e8e\u5bf9\u7167\u7406\u89e3\u6574\u4f53\u7ed3\u6784\u3002<\/p>\n<h4>15.1 Article.java<\/h4>\n<p><span class=\"token keyword\">package<\/span> <span class=\"token namespace\">com<span class=\"token punctuation\">.<\/span>ls<span class=\"token punctuation\">.<\/span>androiduibyjavaproject<span class=\"token punctuation\">.<\/span>recyclerview<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Article<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">String<\/span> title<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u6807\u9898<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">String<\/span> desc<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u63cf\u8ff0<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">String<\/span> anthor<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u4f5c\u8005<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">long<\/span> publish<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u53d1\u5e03\u65f6\u95f4<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">int<\/span> picture<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u56fe\u7247\u8d44\u6e901<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">int<\/span> picture2<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u56fe\u7247\u8d44\u6e902<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">int<\/span> picture3<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u56fe\u7247\u8d44\u6e903<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">boolean<\/span> idAd<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u5f53\u524d\u7684\u8d44\u8baf\u662f\u4e0d\u662f\u5e7f\u544a<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">int<\/span> adPicture<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u5e7f\u544a\u5bf9\u5e94\u7684\u56fe\u7247\u8d44\u6e90<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">boolean<\/span> check<span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/\u662f\u5426\u88ab\u52fe\u9009<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">boolean<\/span> idAd<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> adPicture<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>idAd <span class=\"token operator\">&#061;<\/span> idAd<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>adPicture <span class=\"token operator\">&#061;<\/span> adPicture<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span> title<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">String<\/span> anthor<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> picture<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>title <span class=\"token operator\">&#061;<\/span> title<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>anthor <span class=\"token operator\">&#061;<\/span> anthor<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>picture <span class=\"token operator\">&#061;<\/span> picture<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">String<\/span> <span class=\"token function\">getTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> title<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">setTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span> title<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>title <span class=\"token operator\">&#061;<\/span> title<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">String<\/span> <span class=\"token function\">getDesc<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> desc<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">setDesc<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span> desc<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>desc <span class=\"token operator\">&#061;<\/span> desc<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">String<\/span> <span class=\"token function\">getAnthor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> anthor<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">setAnthor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span> anthor<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>anthor <span class=\"token operator\">&#061;<\/span> anthor<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">long<\/span> <span class=\"token function\">getPublish<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> publish<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">setPublish<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">long<\/span> publish<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>publish <span class=\"token operator\">&#061;<\/span> publish<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token function\">getPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> picture<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">setPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> picture<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>picture <span class=\"token operator\">&#061;<\/span> picture<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token function\">getPicture2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> picture2<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">setPicture2<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> picture2<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>picture2 <span class=\"token operator\">&#061;<\/span> picture2<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token function\">getPicture3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> picture3<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">setPicture3<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> picture3<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>picture3 <span class=\"token operator\">&#061;<\/span> picture3<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">boolean<\/span> <span class=\"token function\">isIdAd<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> idAd<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">setIdAd<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">boolean<\/span> idAd<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>idAd <span class=\"token operator\">&#061;<\/span> idAd<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token function\">getAdPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> adPicture<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">setAdPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> adPicture<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>adPicture <span class=\"token operator\">&#061;<\/span> adPicture<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">boolean<\/span> <span class=\"token function\">isCheck<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> check<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">setCheck<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">boolean<\/span> check<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>check <span class=\"token operator\">&#061;<\/span> check<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<h4>15.2 ArticleAdapter.java<\/h4>\n<p><span class=\"token keyword\">package<\/span> <span class=\"token namespace\">com<span class=\"token punctuation\">.<\/span>ls<span class=\"token punctuation\">.<\/span>androiduibyjavaproject<span class=\"token punctuation\">.<\/span>recyclerview<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">import<\/span> <span class=\"token namespace\">android<span class=\"token punctuation\">.<\/span>util<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">Log<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">import<\/span> <span class=\"token namespace\">android<span class=\"token punctuation\">.<\/span>view<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">LayoutInflater<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">import<\/span> <span class=\"token namespace\">android<span class=\"token punctuation\">.<\/span>view<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">View<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">import<\/span> <span class=\"token namespace\">android<span class=\"token punctuation\">.<\/span>view<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">ViewGroup<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">import<\/span> <span class=\"token namespace\">android<span class=\"token punctuation\">.<\/span>widget<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">ImageView<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">import<\/span> <span class=\"token namespace\">android<span class=\"token punctuation\">.<\/span>widget<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">TextView<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">import<\/span> <span class=\"token namespace\">androidx<span class=\"token punctuation\">.<\/span>annotation<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">NonNull<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">import<\/span> <span class=\"token namespace\">androidx<span class=\"token punctuation\">.<\/span>recyclerview<span class=\"token punctuation\">.<\/span>widget<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">RecyclerView<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">import<\/span> <span class=\"token namespace\">com<span class=\"token punctuation\">.<\/span>ls<span class=\"token punctuation\">.<\/span>androiduibyjavaproject<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">import<\/span> <span class=\"token namespace\">java<span class=\"token punctuation\">.<\/span>util<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">ArrayList<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">ArticleAdapter<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>Adapter<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">ArticleAdapter<span class=\"token punctuation\">.<\/span>MyViewHolder<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">String<\/span> TAG <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;ArticleAdapter&#034;<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">ArticleAdapter<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> <span class=\"token function\">getArticles<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> articles<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">setArticles<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>articles <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/\u544a\u8bc9adapter&#xff0c;\u548c\u4f60\u5173\u8054\u7684\u6570\u636e\u6e90\u6709\u53d8\u5316&#xff0c;\u8bf7\u91cd\u65b0\u6839\u636e\u6570\u636e\u505a\u51fa\u8c03\u6574<\/span><br \/>\n        <span class=\"token function\">notifyDataSetChanged<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">Log<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">i<\/span><span class=\"token punctuation\">(<\/span>TAG<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;ArticleAdapter:  articles.size &#061; &#034;<\/span> <span class=\"token operator\">&#043;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token annotation punctuation\">&#064;NonNull<\/span><br \/>\n    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">ArticleAdapter<span class=\"token punctuation\">.<\/span>MyViewHolder<\/span> <span class=\"token function\">onCreateViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">ViewGroup<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> viewType<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token class-name\">View<\/span> view <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">LayoutInflater<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span>parent<span class=\"token punctuation\">.<\/span><span class=\"token function\">getContext<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                <span class=\"token punctuation\">.<\/span><span class=\"token function\">inflate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>item_article_simple<span class=\"token punctuation\">,<\/span> parent<span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">MyViewHolder<\/span> holder <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span>view<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> holder<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onBindViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">ArticleAdapter<span class=\"token punctuation\">.<\/span>MyViewHolder<\/span> holder<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> position<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token class-name\">Log<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">i<\/span><span class=\"token punctuation\">(<\/span>TAG<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;onBindViewHolder: position &#061;&#034;<\/span> <span class=\"token operator\">&#043;<\/span> position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token class-name\">Article<\/span> article <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span>position<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        holder<span class=\"token punctuation\">.<\/span>ivPicture<span class=\"token punctuation\">.<\/span><span class=\"token function\">setImageResource<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getPicture<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        holder<span class=\"token punctuation\">.<\/span>tvTitle<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        holder<span class=\"token punctuation\">.<\/span>tvAnthor<span class=\"token punctuation\">.<\/span><span class=\"token function\">setText<\/span><span class=\"token punctuation\">(<\/span>article<span class=\"token punctuation\">.<\/span><span class=\"token function\">getAnthor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">int<\/span> <span class=\"token function\">getItemCount<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> articles <span class=\"token operator\">!&#061;<\/span> <span class=\"token keyword\">null<\/span> <span class=\"token operator\">?<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">:<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">MyViewHolder<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">RecyclerView<span class=\"token punctuation\">.<\/span>ViewHolder<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>        <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ImageView<\/span> ivPicture<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvTitle<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">TextView<\/span> tvAnthor<span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">public<\/span> <span class=\"token class-name\">MyViewHolder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token annotation punctuation\">&#064;NonNull<\/span> <span class=\"token class-name\">View<\/span> itemView<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">(<\/span>itemView<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            ivPicture <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>iv_picture<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            tvTitle <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_title<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            tvAnthor <span class=\"token operator\">&#061;<\/span> itemView<span class=\"token punctuation\">.<\/span><span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>tv_anthor<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token punctuation\">}<\/span><\/p>\n<h4>15.3 ArticleListActivity.java<\/h4>\n<p><span class=\"token keyword\">package<\/span> <span class=\"token namespace\">com<span class=\"token punctuation\">.<\/span>ls<span class=\"token punctuation\">.<\/span>androiduibyjavaproject<span class=\"token punctuation\">.<\/span>recyclerview<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">import<\/span> <span class=\"token namespace\">androidx<span class=\"token punctuation\">.<\/span>appcompat<span class=\"token punctuation\">.<\/span>app<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">AppCompatActivity<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">import<\/span> <span class=\"token namespace\">androidx<span class=\"token punctuation\">.<\/span>recyclerview<span class=\"token punctuation\">.<\/span>widget<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">LinearLayoutManager<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">import<\/span> <span class=\"token namespace\">androidx<span class=\"token punctuation\">.<\/span>recyclerview<span class=\"token punctuation\">.<\/span>widget<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">RecyclerView<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">import<\/span> <span class=\"token namespace\">android<span class=\"token punctuation\">.<\/span>os<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">Bundle<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">import<\/span> <span class=\"token namespace\">android<span class=\"token punctuation\">.<\/span>view<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">View<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">import<\/span> <span class=\"token namespace\">com<span class=\"token punctuation\">.<\/span>ls<span class=\"token punctuation\">.<\/span>androiduibyjavaproject<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">import<\/span> <span class=\"token namespace\">java<span class=\"token punctuation\">.<\/span>util<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">ArrayList<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">ArticleListActivity<\/span> <span class=\"token keyword\">extends<\/span> <span class=\"token class-name\">AppCompatActivity<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">ArticleAdapter<\/span> adapter<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n    <span class=\"token keyword\">protected<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onCreate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">Bundle<\/span> savedInstanceState<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">super<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">onCreate<\/span><span class=\"token punctuation\">(<\/span>savedInstanceState<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token function\">setContentView<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>layout<span class=\"token punctuation\">.<\/span>activity_article_list<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token class-name\">RecyclerView<\/span> recyclerView <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>recycler_view<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token class-name\">LinearLayoutManager<\/span> layoutManager <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">LinearLayoutManager<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/\u7ebf\u6027\u65b9\u5411\u6539\u6210\u6a2a\u5411<\/span><br \/>\n        <span class=\"token comment\">\/\/ layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);<\/span><br \/>\n        <span class=\"token comment\">\/\/\u4e3aRecyclerView\u6dfb\u52a0\u5e03\u5c40\u7ba1\u7406\u5668<\/span><br \/>\n        recyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setLayoutManager<\/span><span class=\"token punctuation\">(<\/span>layoutManager<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/\u8bbe\u7f6e\u9002\u914d\u5668<\/span><br \/>\n        adapter <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ArticleAdapter<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        recyclerView<span class=\"token punctuation\">.<\/span><span class=\"token function\">setAdapter<\/span><span class=\"token punctuation\">(<\/span>adapter<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>btn_load<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">setOnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">View<span class=\"token punctuation\">.<\/span>OnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n            <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">View<\/span> v<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token comment\">\/\/\u70b9\u51fb\u4e4b\u540e\u518d\u7ed9RecyclerView\u6570\u636e<\/span><br \/>\n                <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">createData<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                adapter<span class=\"token punctuation\">.<\/span><span class=\"token function\">setArticles<\/span><span class=\"token punctuation\">(<\/span>articles<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>btn_modify<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">setOnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">View<span class=\"token punctuation\">.<\/span>OnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n            <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">View<\/span> v<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles <span class=\"token operator\">&#061;<\/span> adapter<span class=\"token punctuation\">.<\/span><span class=\"token function\">getArticles<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token class-name\">Article<\/span> article <span class=\"token operator\">&#061;<\/span> articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                article<span class=\"token punctuation\">.<\/span><span class=\"token function\">setTitle<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u6211\u4fee\u6539\u4e86\u7b2c\u4e8c\u6761\u6570\u636e\u7684\u6807\u9898&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token comment\">\/\/\u6839\u636eposition\u5355\u72ec\u5237\u65b0\u67d0\u4e2aitem<\/span><br \/>\n                adapter<span class=\"token punctuation\">.<\/span><span class=\"token function\">notifyItemChanged<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token function\">findViewById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>id<span class=\"token punctuation\">.<\/span>btn_remove<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">setOnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">View<span class=\"token punctuation\">.<\/span>OnClickListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token annotation punctuation\">&#064;Override<\/span><br \/>\n            <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">onClick<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">View<\/span> v<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles <span class=\"token operator\">&#061;<\/span> adapter<span class=\"token punctuation\">.<\/span><span class=\"token function\">getArticles<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">remove<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token comment\">\/\/\u5bf9\u5f53\u4e2aitem\u505a\u79fb\u9664\u64cd\u4f5c<\/span><br \/>\n                adapter<span class=\"token punctuation\">.<\/span><span class=\"token function\">notifyItemRemoved<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> <span class=\"token function\">createData<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> articles <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u8fbd\u5b81\u6e05\u539f\u62bd\u6c34\u84c4\u80fd\u7535\u7ad9\u6700\u540e\u4e00\u53f0\u5b9a\u5b50\u540a\u88c5\u5b8c\u6210&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u4eba\u6c11\u7f51-\u56fe\u7247\u9891\u9053&#xff0c;\u4f9b\u7a3f&#xff1a;\u4eba\u6c11\u8d44\u8baf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u901a\u884c\u65f6\u95f4\u518d\u7f29\u77ed&#xff01;\u5e7f\u6e5b\u9ad8\u94c1\u4f5b\u5c71\u7ad9\u5efa\u8bbe\u6b63\u5f0f\u542f\u52a8&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u4eba\u6c11\u7f51&#xff0d;\u5e7f\u4e1c\u9891\u9053&#xff0c;\u4f9b\u7a3f&#xff1a;\u4eba\u6c11\u8d44\u8baf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_2<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;19\u5c81\u676d\u5dde\u5e05\u5c0f\u4f19\u7b2c\u4e00\u540d&#xff0c;\u8fd8\u6709\u4eba\u6293\u5230\u4e00\u53ea\u7532\u9c7c&#xff01;\u4eca\u65e93000\u591a\u4eba\u5728\u94b1\u5858\u6c5f\u8fb9&#xff0c;\u592a\u6b22\u4e50\u4e86&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u676d\u5dde\u7f51&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_3<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4eca\u65e5\u8d77\u201c\u4e24\u6c5f\u5c0f\u6e21\u201d\u822a\u7ebf\u6062\u590d\u6b63\u5e38\u8fd0\u8425&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u4e0a\u6e38\u65b0\u95fb&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_4<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e2d\u56fd\u592a\u4fdd\u5c0f\u6392\u7403\u590f\u4ee4\u8425\u5728\u6f33\u5dde\u706b\u70ed\u542f\u822a&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u56fd\u9645\u65f6\u4e8b\u8bb2\u89e3&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_5<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u594b\u529b\u63a8\u52a8\u6c11\u65cf\u5730\u533a\u9ad8\u8d28\u91cf\u53d1\u5c55\u548c\u73b0\u4ee3\u5316\u5efa\u8bbe\u8fc8\u51fa\u65b0\u6b65\u4f10&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u5f53\u4ee3\u5148\u950b\u7f51&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_6<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u76f8\u4fe1\u9752\u6625\u7684\u529b\u91cf&#xff5c;\u5199\u5728\u6211\u77012024\u5e74\u4e07\u540d\u5927\u5b66\u751f\u5fd7\u613f\u670d\u52a1\u897f\u90e8\u8ba1\u5212\u51fa\u5f81\u4e4b\u9645&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u4eba\u6c11\u7f51-\u56fe\u7247\u9891\u9053&#xff0c;\u4f9b\u7a3f&#xff1a;\u4eba\u6c11\u8d44\u8baf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_7<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u91cf\u8eab\u5b9a\u5236\u201c\u6d77\u5916\u8ba2\u5355\u201d \u8d35\u5dde\u6c7d\u8f66\u5236\u9020\u5f00\u62d3\u56fd\u9645\u5e02\u573a&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u5f53\u4ee3\u5148\u950b\u7f51&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_8<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u52bf\u4e0d\u53ef\u6321\u2026\u2026\u5728\u8fd9\u91cc&#xff0c;\u4e61\u6751\u632f\u5174\u7684\u65b0\u5f15\u64ce\u6b63\u53d1\u51fa\u5f3a\u52b2\u52a8\u529b&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u9c81\u7f51&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_9<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u83cf\u6cfd\u804c\u4e1a\u5b66\u9662\u53ec\u5f002024\u5c4a\u6bd5\u4e1a\u751f\u7b2c\u4e8c\u8f6e\u5c31\u4e1a\u6838\u67e5\u5de5\u4f5c\u90e8\u7f72\u4f1a&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u5927\u4f17\u62a5\u4e1a\u00b7\u9f50\u9c81\u58f9\u70b9&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_10<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u83cf\u6cfd\u804c\u4e1a\u5b66\u9662\u5b66\u524d\u6559\u80b2\u7cfb&#xff08;\u80b2\u4e2d\u6559\u80b2\u5b66\u9662&#xff09;\u65a9\u83b7\u7701\u7ea7\u5927\u8d5b\u4e00\u7b49\u5956&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u897f\u5b89\u5feb\u7ebf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_11<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u83cf\u6cfd\u804c\u4e1a\u5b66\u9662\u4e00\u7c7b\u6559\u5b66\u5927\u8d5b&#xff0c;\u4e8c\u7b49\u5956&#043;2&#xff01;&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u5927\u4f17\u62a5\u4e1a\u00b7\u9f50\u9c81\u58f9\u70b9&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_12<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e2d\u592e\u6c14\u8c61\u53f0\u505c\u6b62\u5bf9\u201c\u683c\u7f8e\u201d\u7f16\u53f7 \u6e56\u5357\u8fbd\u5b81\u5409\u6797\u7b49\u5730\u4ecd\u6709\u5f3a\u964d\u96e8&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u56fd\u9645\u65f6\u4e8b\u8bb2\u89e3&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_13<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e60\u6c34\u4ed9\u6e90\u9547&#xff1a;\u6e05\u51c9\u5c71\u6c34\u5f15\u5ba2\u6765 \u6d88\u590f\u907f\u6691\u4eba\u6c14\u8db3&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u591a\u5f69\u8d35\u5dde\u7f51&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_14<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e60\u6c34\u53bf\u5be8\u575d\u9547&#xff1a;\u6e05\u51c9\u907f\u6691\u5730 \u5eb7\u517b\u7b2c\u4e8c\u4e61&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u591a\u5f69\u8d35\u5dde\u7f51&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_15<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u8d64\u6c34\u5e02\u5143\u539a\u9547&#xff1a;\u65b0\u54c1\u8354\u679d\u51fa\u5c71\u8bb0&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u4eba\u6c11\u7f51-\u56fe\u7247\u9891\u9053&#xff0c;\u4f9b\u7a3f&#xff1a;\u4eba\u6c11\u8d44\u8baf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_16<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e60\u6c34\u4e09\u5c94\u6cb3\u9547\u5c0f\u5c0f\u9519\u8f66\u9053 \u7545\u901a\u51fa\u884c\u6696\u6c11\u5fc3&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u6e56\u5357\u65e5\u62a5&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_17<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e60\u6c34\u571f\u57ce\u9547\u793e\u4f1a\u5b9e\u8df5\u6d3b\u52a8\u4e30\u5bcc\u5b66\u751f\u5047\u671f\u751f\u6d3b&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u4e0a\u6d77\u54a8\u8be2&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_18<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u8d64\u6c34\u5efa\u5f3a\u201c\u5c0f\u7ad9\u70b9\u201d\u91ca\u653e\u4e61\u6751\u632f\u5174\u65b0\u52a8\u80fd&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u798f\u5efa\u65b0\u95fb\u7f51&#xff0c;\u4f9b\u7a3f&#xff1a;\u4eba\u6c11\u8d44\u8baf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_19<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        articles<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Article<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e60\u6c34\u540c\u6c11\u9547&#xff1a;\u706b\u9f99\u679c\u559c\u4e30\u6536 \u679c\u519c\u7b11\u5f00\u989c&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token string\">&#034;\u4e0a\u6e38\u65b0\u95fb&#xff0c;\u4f9b\u7a3f&#xff1a;\u4eba\u6c11\u8d44\u8baf&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">R<\/span><span class=\"token punctuation\">.<\/span>drawable<span class=\"token punctuation\">.<\/span>ic_article_20<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">return<\/span> articles<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<h4>15.4 \u5176\u4f59\u6587\u4ef6<\/h4>\n<p>repomix \u4e2d\u8fd8\u5305\u542b\u4ee5\u4e0b\u6587\u4ef6&#xff08;\u540c\u6837\u53ef\u4f5c\u4e3a\u5b8c\u6574\u5de5\u7a0b\u53c2\u8003&#xff09;&#xff1a;<\/p>\n<ul>\n<li>ArticleCheckActivity.java<\/li>\n<li>ArticleCheckAdapter.java<\/li>\n<li>ArticleDetailActivity.java<\/li>\n<li>ArticleMoreAdapter.java<\/li>\n<li>ArticleMoreListActivity.java<\/li>\n<li>GridAdapter.java<\/li>\n<li>GridRecycerViewActivity.java<\/li>\n<li>StaggeredGridAdapter.java<\/li>\n<li>StaggeredGridRecyclerViewActivity.java<\/li>\n<\/ul>\n<p>&#xff08;\u5982\u9700&#xff0c;\u6211\u53ef\u4ee5\u7ee7\u7eed\u628a\u8fd9\u4e9b\u6587\u4ef6\u4e5f\u6309\u201c\u539f\u6837\u4ee3\u7801\u5757\u201d\u5b8c\u6574\u9644\u5728\u6587\u672b&#xff0c;\u4fbf\u4e8e\u4e00\u7bc7\u6587\u7ae0\u5185\u76f4\u63a5\u590d\u5236\u5bf9\u7167\u3002&#xff09;<\/p>\n<hr \/>\n<h3>\u603b\u7ed3<\/h3>\n<p>\u672c\u6587\u4e32\u8d77\u4e86 RecyclerView \u7684\u6838\u5fc3\u80fd\u529b&#xff1a;<\/p>\n<ul>\n<li>Adapter &#043; ViewHolder&#xff1a;\u5217\u8868\u6e32\u67d3\u7684\u57fa\u7840<\/li>\n<li>LayoutManager&#xff1a;\u51b3\u5b9a\u5217\u8868\u5982\u4f55\u6392\u5e03<\/li>\n<li>\u6570\u636e\u9a71\u52a8\u7ed1\u5b9a&#xff1a;position \u5bf9\u5e94\u6570\u636e\u6e90\u4e0b\u6807<\/li>\n<li>notify \u7cfb\u5217 API&#xff1a;\u5168\u91cf\u5237\u65b0\u4e0e\u5c40\u90e8\u5237\u65b0<\/li>\n<li>\u591a ViewType&#xff1a;\u6df7\u5408\u6837\u5f0f\u5217\u8868\u7684\u6807\u51c6\u505a\u6cd5<\/li>\n<li>\u4e8b\u4ef6\u56de\u8c03&#xff1a;\u8ba9 Adapter \u4e0e\u5916\u90e8\u89e3\u8026<\/li>\n<li>\u72b6\u6001\u590d\u7528\u95ee\u9898&#xff1a;\u7528\u6570\u636e\u6e90\u7ed1\u5b9a UI \u72b6\u6001\u662f\u5173\u952e<\/li>\n<\/ul>\n<p>\u638c\u63e1\u8fd9\u4e9b\u4e4b\u540e&#xff0c;\u65e0\u8bba\u662f\u65b0\u95fb\u8d44\u8baf\u6d41\u3001\u5546\u54c1\u5217\u8868\u3001\u804a\u5929\u8bb0\u5f55&#xff0c;\u8fd8\u662f\u6df7\u6392\u63a8\u8350\u9875&#xff0c;RecyclerView \u90fd\u80fd\u8f7b\u677e\u5e94\u5bf9\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u8a00<br \/>\n\u672c\u6587\u4e32\u8d77\u4e86 RecyclerView \u7684\u6838\u5fc3\u80fd\u529b&#xff1a;<br \/>\nAdapter  ViewHolder&#xff1a;\u5217\u8868\u6e32\u67d3\u7684\u57fa\u7840LayoutManager&#xff1a;\u51b3\u5b9a\u5217\u8868\u5982\u4f55\u6392\u5e03\u6570\u636e\u9a71\u52a8\u7ed1\u5b9a&#xff1a;position \u5bf9\u5e94\u6570\u636e\u6e90\u4e0b\u6807notify \u7cfb\u5217 API&#xff1a;\u5168\u91cf\u5237\u65b0\u4e0e\u5c40\u90e8\u5237\u65b0\u591a ViewType&#xff1a;\u6df7\u5408\u6837\u5f0f\u5217\u8868\u7684\u6807\u51c6\u505a\u6cd5\u4e8b\u4ef6\u56de\u8c03&#xff1a;\u8ba9 Adapter \u4e0e\u5916\u90e8\u89e3\u8026\u72b6\u6001\u590d\u7528\u95ee\u9898&#xff1a;\u7528\u6570\u636e\u6e90\u7ed1\u5b9a UI \u72b6<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[84,99],"topic":[],"class_list":["post-76946","post","type-post","status-publish","format-standard","hentry","category-server","tag-android","tag-java"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Android RecyclerView \u5b9e\u6218\uff1a\u4ece\u57fa\u7840\u5217\u8868\u5230\u591a\u7c7b\u578b Item\u3001\u5206\u5272\u7ebf\u4e0e\u72b6\u6001\u590d\u7528\u95ee\u9898 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/76946.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android RecyclerView \u5b9e\u6218\uff1a\u4ece\u57fa\u7840\u5217\u8868\u5230\u591a\u7c7b\u578b Item\u3001\u5206\u5272\u7ebf\u4e0e\u72b6\u6001\u590d\u7528\u95ee\u9898 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u524d\u8a00 \u672c\u6587\u4e32\u8d77\u4e86 RecyclerView \u7684\u6838\u5fc3\u80fd\u529b&#xff1a; Adapter ViewHolder&#xff1a;\u5217\u8868\u6e32\u67d3\u7684\u57fa\u7840LayoutManager&#xff1a;\u51b3\u5b9a\u5217\u8868\u5982\u4f55\u6392\u5e03\u6570\u636e\u9a71\u52a8\u7ed1\u5b9a&#xff1a;position \u5bf9\u5e94\u6570\u636e\u6e90\u4e0b\u6807notify \u7cfb\u5217 API&#xff1a;\u5168\u91cf\u5237\u65b0\u4e0e\u5c40\u90e8\u5237\u65b0\u591a ViewType&#xff1a;\u6df7\u5408\u6837\u5f0f\u5217\u8868\u7684\u6807\u51c6\u505a\u6cd5\u4e8b\u4ef6\u56de\u8c03&#xff1a;\u8ba9 Adapter \u4e0e\u5916\u90e8\u89e3\u8026\u72b6\u6001\u590d\u7528\u95ee\u9898&#xff1a;\u7528\u6570\u636e\u6e90\u7ed1\u5b9a UI \u72b6\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/76946.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-23T08:34:08+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"26 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/76946.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/76946.html\",\"name\":\"Android RecyclerView \u5b9e\u6218\uff1a\u4ece\u57fa\u7840\u5217\u8868\u5230\u591a\u7c7b\u578b Item\u3001\u5206\u5272\u7ebf\u4e0e\u72b6\u6001\u590d\u7528\u95ee\u9898 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-02-23T08:34:08+00:00\",\"dateModified\":\"2026-02-23T08:34:08+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/76946.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/76946.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/76946.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android RecyclerView \u5b9e\u6218\uff1a\u4ece\u57fa\u7840\u5217\u8868\u5230\u591a\u7c7b\u578b Item\u3001\u5206\u5272\u7ebf\u4e0e\u72b6\u6001\u590d\u7528\u95ee\u9898\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android RecyclerView \u5b9e\u6218\uff1a\u4ece\u57fa\u7840\u5217\u8868\u5230\u591a\u7c7b\u578b Item\u3001\u5206\u5272\u7ebf\u4e0e\u72b6\u6001\u590d\u7528\u95ee\u9898 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/76946.html","og_locale":"zh_CN","og_type":"article","og_title":"Android RecyclerView \u5b9e\u6218\uff1a\u4ece\u57fa\u7840\u5217\u8868\u5230\u591a\u7c7b\u578b Item\u3001\u5206\u5272\u7ebf\u4e0e\u72b6\u6001\u590d\u7528\u95ee\u9898 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u524d\u8a00 \u672c\u6587\u4e32\u8d77\u4e86 RecyclerView \u7684\u6838\u5fc3\u80fd\u529b&#xff1a; Adapter ViewHolder&#xff1a;\u5217\u8868\u6e32\u67d3\u7684\u57fa\u7840LayoutManager&#xff1a;\u51b3\u5b9a\u5217\u8868\u5982\u4f55\u6392\u5e03\u6570\u636e\u9a71\u52a8\u7ed1\u5b9a&#xff1a;position \u5bf9\u5e94\u6570\u636e\u6e90\u4e0b\u6807notify \u7cfb\u5217 API&#xff1a;\u5168\u91cf\u5237\u65b0\u4e0e\u5c40\u90e8\u5237\u65b0\u591a ViewType&#xff1a;\u6df7\u5408\u6837\u5f0f\u5217\u8868\u7684\u6807\u51c6\u505a\u6cd5\u4e8b\u4ef6\u56de\u8c03&#xff1a;\u8ba9 Adapter \u4e0e\u5916\u90e8\u89e3\u8026\u72b6\u6001\u590d\u7528\u95ee\u9898&#xff1a;\u7528\u6570\u636e\u6e90\u7ed1\u5b9a UI \u72b6","og_url":"https:\/\/www.wsisp.com\/helps\/76946.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-02-23T08:34:08+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"26 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/76946.html","url":"https:\/\/www.wsisp.com\/helps\/76946.html","name":"Android RecyclerView \u5b9e\u6218\uff1a\u4ece\u57fa\u7840\u5217\u8868\u5230\u591a\u7c7b\u578b Item\u3001\u5206\u5272\u7ebf\u4e0e\u72b6\u6001\u590d\u7528\u95ee\u9898 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-02-23T08:34:08+00:00","dateModified":"2026-02-23T08:34:08+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/76946.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/76946.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/76946.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"Android RecyclerView \u5b9e\u6218\uff1a\u4ece\u57fa\u7840\u5217\u8868\u5230\u591a\u7c7b\u578b Item\u3001\u5206\u5272\u7ebf\u4e0e\u72b6\u6001\u590d\u7528\u95ee\u9898"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/76946","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=76946"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/76946\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=76946"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=76946"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=76946"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=76946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}