title: 小白也能学会的Android应用分类订阅功能(新闻个性化分类订阅),学不会你打我!
相信小伙伴们都使用过分类订阅这个功能,像CSDN APP的分类订阅、还有各种新闻的个性化分类订阅,今天就来实现它!具体实现功能如下:
- 长按进入可编辑模式(可编辑,并且分类框右边出现一个加(减)图标)
- 编辑模式下可以通过点击分类进行订阅(或取消订阅),并且所有分类有抖动效果
- 点击按钮退出编辑模式(也可以改成 退出当前页面 或者 其他事件)
- 退出编辑模式的同时会保存当前订阅状态(下次进入页面时会显示上次修改后的状态)
温馨提示:如果ListView、GridView、RecycleView一个都不会的话建议先去学一个再来学习这个,会一个都行
话不多说先上效果图!

首先讲一下实现功能的大致思路:实现这个订阅功能主要是在于实现两个GridView(也可以用ListView或者Recycle,这里演示GridView)的点击功能,首先是长按进入编辑模式,利用长按监听对两个GridView设置右上角小图标以及抖动,然后是GridView的子项点击事件的监听,点击其中一个的时候,先把这个加到另外那个GridView里面去,然后移除点击的这个,最后点击保存是利用List的size()和for循环来保存当前GridView里面的所有项(算是奇淫技巧吧,只会这样了)!接下来详细讲:
XML布局
布局没啥讲的,就上下两个GridView,然后加了个按钮(简单到没话说)
1 |
|
Item的布局(GridView的Item)
这里是一个LinearLayout里面放了一个TextView和一个ImageView然后把它们调整成ImageView重叠在TextView右上角
1 |
|
Adapter(GridView的适配器)
这里只放上来一个,我写了两个一样的Adapter(只有名字不一样),如果只用一个的话很麻烦,尤其是当更新数据的时候,会出现很多小BUG(亲测),当然你也可以去试试只用一个!
这里主要讲的是那个boolean值的作用,多生成一个构造方法,可以在Activity中通过实例化传入boolean值或者不传入实现是否显示右上角的小图标!(这里是当传入true时就会把小图标显示出来)
1 | public class AdapterTopGrid extends BaseAdapter { |
JAVA后台
在这里首先是判断有没有存过数据,如果没有则使用默认数据(第一次进入软件),然后是GridView的长按事件,重新实例化Adpater,进入编辑模式,接着是GridView的子项点击事件,另一个加上点击的那个,然后移除当前点击的(这里注意先加后移除),然后是按钮的点击事件,利用for循环实现按一定规律以Key-Value的形式用SharePrefences保存数据,并且重新实例化Adapter,让GridView变回默认状态。
然后抖动功能的话,属于可选功能吧,这是做了,不想要的或者想要其他效果的可以选择删掉那几行代码!不会影响其他功能的实现!
1 | public class SubActivity extends AppCompatActivity { |
感谢阅读!有疑问或者更好的方法实现可以留言或者私信我!
- 本文作者: Android YU
- 本文链接: http://yoursite.com/2020/03/27/Android应用分类订阅功能(新闻个性化分类订阅)/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!