• 经常看新闻类的大家都知道这个频道管理。

图片转载https://blog.csdn.net/u011916937/article/details/50483278

  • 我这里是用的Github,开源项目,导入的依赖,下属必须配置。

allprojects {repositories {google()jcenter()//工程下的build.gradlemaven {url "https://jitpack.io"}}
}

app下的build.gradle

implementation 'com.github.andyoom:draggrid:v1.0.1'

清单文件:

<!-- 在SDCard中创建与删除文件权限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <!-- 往SDCard写入数据权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- 震动权限 -->
    <uses-permission android:name="android.permission.VIBRATE"/>

<activity android:name="com.andy.library.ChannelActivity"></activity>

Activity内写法:

/此activity用数据库存储数据
public class Main2Activity extends AppCompatActivity {private List<String> tabs = new ArrayList<>();private TabLayout tab;private ViewPager vp;private DBDao dbDao;private List<ChannelBean> list;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tab = findViewById(R.id.tab);vp = findViewById(R.id.vp);dbDao = new DBDao(this);//先查询数据库有没有数据,有数据取出选中的标签list = dbDao.queryData();if (list.size() != 0) {for (int i = 0; i < list.size(); i++) {ChannelBean channelBean = list.get(i);boolean select = channelBean.isSelect();String name = channelBean.getName();if (select) {//为true添加给标签tabs.add(name);}}} else {//第一次运行程序  初始化数据并插入数据库for (int i = 0; i < 10; i++) {ChannelBean bean = new ChannelBean("item-" + i, i < 5 ? true : false);dbDao.addData(bean);}//查询出数据list = dbDao.queryData();//遍历数据找出状态为true的能标签for (int i = 0; i < list.size(); i++) {ChannelBean channelBean = list.get(i);boolean select = channelBean.isSelect();String name = channelBean.getName();if (select) {//为true添加给标签tabs.add(name);}}}tab.setTabMode(TabLayout.MODE_SCROLLABLE);//创建适配器MainViewPagerAdapter adapter = new MainViewPagerAdapter(getSupportFragmentManager(), tabs);vp.setAdapter(adapter);tab.setupWithViewPager(vp);//频道管理Button bt_go = findViewById(R.id.bt_go);bt_go.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//每次点击更新最新数据list = dbDao.queryData();ChannelActivity.startChannelActivity(Main2Activity.this, list);}});}//回传数据@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);//清空数据tabs.clear();dbDao.delete();Log.i("xxx", data.getStringExtra("json"));//返回json数据String json = data.getStringExtra("json");try {JSONArray jsonArray = new JSONArray(json);for (int i = 0; i < jsonArray.length(); i++) {ChannelBean channelBean = null;JSONObject jsonObject = jsonArray.getJSONObject(i);String isSelect = jsonObject.getString("isSelect");String name = null;if (isSelect.equals("true")) {//为true添加给标签name = jsonObject.getString("name");tabs.add(name);channelBean = new ChannelBean(name, true);} else {name = jsonObject.getString("name");channelBean = new ChannelBean(name, false);}//从新把数据添加给数据库dbDao.addData(channelBean);}//把标签给tablayoutfor (int i = 0; i < tabs.size(); i++) {tab.addTab(tab.newTab().setText( tabs.get(i)));}//创建适配器MainViewPagerAdapter adapter = new MainViewPagerAdapter(getSupportFragmentManager(), tabs);vp.setAdapter(adapter);} catch (JSONException e) {e.printStackTrace();}}
}

Sql_Dao层写法:

public class DBDao {private final DBHelper helper;public DBDao(Context context) {helper = new DBHelper(context);}//添加public void addData(ChannelBean channelBean) {SQLiteDatabase db = helper.getWritableDatabase();ContentValues values = new ContentValues();values.put("name", channelBean.getName());//可以储存boolean类型values.put("isSelect", channelBean.isSelect());db.insert("cache", null, values);db.close();}//查询public List<ChannelBean> queryData() {SQLiteDatabase db = helper.getWritableDatabase();List<ChannelBean> list = new ArrayList<>();Cursor cursor = db.query("cache", null, null, null, null, null, null);while (cursor.moveToNext()) {ChannelBean channelBean = null;String name = cursor.getString(cursor.getColumnIndex("name"));//根据解析获取字段int anInt = cursor.getInt(2);//0代表是falseif (anInt == 0) {channelBean = new ChannelBean(name, false);//1代表true} else {channelBean = new ChannelBean(name, true);}list.add(channelBean);}return list;}//删除public void delete() {SQLiteDatabase db = helper.getWritableDatabase();db.execSQL("delete from cache");}
}

Android资讯新闻类App(头条、网易等),频道管理集成之数据库存储相关推荐

  1. android新闻管理,Android资讯新闻类App(头条、网易等),频道管理集成之数据库存储...

    Android资讯新闻类App(头条.网易等),频道管理集成之数据库存储 发布时间:2019-01-16 19:55, 浏览次数:305 , 标签: Android App * 经常看新闻类的大家都知 ...

  2. 新闻类APP模板详解(android版)

    1.概述 本文将介绍一个android版新闻类app模板,是本人整合了网上各类资源后整理出来的,希望对大家有所帮助! iOS版新闻类app模板详见: 新闻类APP模板详解(iOS版) 本模板app截图 ...

  3. Android-导航栏特效-新闻类APP(仿iOS版网易新闻今日头条的文字渐变缩放特效)

    好久没有写文章了,慢慢的自己工作中遇到的问题不做积累,下次遇到还会忘.哎.... 周日无聊的单身程序员-唯有程序你懂的... 写着程序听着歌也是极好的!! 最近工作中要实现类似 今日头条等新闻类APP ...

  4. 澎湃新闻产品总监首度分享,如何快速在新闻类APP中异军突围?一年时间进入前4名...

    2014年7月22日,由上海报业集团打造的澎湃新闻客户端正式上线.作为首批试水新媒体的国家队纸媒,自诞生之日起,澎湃新闻一直在媒体的聚光灯下,无论是产品设计.UI还是运营模式,都收到广泛关注,褒贬不一 ...

  5. iOS新闻类App内容页技术探索

    为了更好的阅读体验,建议阅读原文 据相关数据显示,截至2017年底,中国手机新闻客户端用户规模达到6.36亿人,移动App已经成为新闻和内容传播的最重要途径之一.而伴随着行业的竞争和发展,App中的内 ...

  6. 课余学习的代码——新闻类App

    这次手机平台应用开发课程设计我们选择了新闻类App作为小组开发的题目.于是再动手写代码前,我们各组员分头在网络上搜索了各式各样的新闻类App来学习,分析那些作者们的设计思路. 当我看到这份作品时真的是 ...

  7. Apicloud开发新闻类App实战项目-老孟编程

    Apicloud开发新闻类App实战项目-老孟编程 课程名称:Apicloud开发新闻类App实战项目 讲师:孟老师 课程介绍: 技术点包括: 1:vue实现apicloud开发脚手架--超级实用通用 ...

  8. 亿级工具类APP头条数据聚合优化实践

    亿级工具类APP头条数据聚合优化实践 业务介绍 中华万年历的头条数据是根据推荐算法聚合而成的数据,包括ALS算法数据.用户画像数据.时效数据.非时效数据.定投数据.惊喜数据.频道数据.热榜数据.用户相 ...

  9. android动画送礼物,Android仿直播类app赠送礼物功能

    直播界面 实现的是播放本地的视频文件: /** * 直播界面,用于对接直播功能 */ public class LiveFrag extends Fragment { private ImageVie ...

最新文章

  1. ASP.NET MVC + ECharts图表案例
  2. 【图解】《“十四五”机器人产业发展规划》
  3. Python爬虫学习获取腾讯新闻并存入Excel
  4. html文本可选择,如何用javascript选择html文本?
  5. wcf:rest_REST:管理多对多关系
  6. mysql行列转置-图文详解
  7. 数据库(三),底层算法
  8. VS.Net 2003/VC6.0常用快捷键集合
  9. 2008 微软IT英雄人物获奖感言
  10. mysql error report,ECSHOP网店系统提示MYSQL SERVER ERROR REPORT的解决方法
  11. 萌新的Python练习菜鸟100例(十一)生兔子练习
  12. java集合源码分析
  13. 使用Latex画三线表时出现线条宽度不一致的情况
  14. Java获取当前年月日
  15. 薄元近似(TEA)与傅立叶模态方法(FMM)在光栅建模中的对比
  16. RTMP、HTTP-FLV、HLS三大直播协议
  17. 从MIT的新式无人船,聊聊机器人的“组队打野”模式
  18. 国庆节,异乡游子如何为自己抢到一张高铁票
  19. OSPF及一类LSA、二类LSA
  20. 计算地球上2点之间的距离

热门文章

  1. 正规式到nfa dfa java_正规式与正规集,DFA与NFA
  2. 国有银行和地方银行有哪些区别?--测试
  3. AI绘画,画你心中所想!【飞链云版图】,圆你心中所梦!
  4. 【STM32F429】第3章 ThreadX GUIX和GUIX Studio介绍
  5. MySQL | 报错 | Query OK, 0 rows affected, 1 warning (0.01 sec)
  6. Golang学习日志 ━━ (批量)循环生成随机数出现重复的解决办法
  7. Facebook 发币后的 48 小时
  8. 华为路由用户添加与删除
  9. 第一次4,说爱你的时候:深圳大学z
  10. 华为OD机试题,用 Java 解【喊 7 的次数重排】问题