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

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

发布时间:2019-01-16 19:55,

浏览次数:305

, 标签:

Android

App

*

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

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

*

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

allprojects { repositories { google() jcenter() //工程下的build.gradle maven { url

"https://jitpack.io" } } }

app下的build.gradle

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

清单文件:

android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

/>

Activity内写法:

/此activity用数据库存储数据 public class Main2Activity extends AppCompatActivity {

private List tabs = new ArrayList<>(); private TabLayout tab; private

ViewPager vp; private DBDao dbDao; private List list; @Override

protected 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() {

@Override public void onClick(View v) { //每次点击更新最新数据 list = dbDao.queryData();

ChannelActivity.startChannelActivity(Main2Activity.this, list); } }); } //回传数据

@Override protected 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); } //把标签给tablayout for (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 queryData() {

SQLiteDatabase db = helper.getWritableDatabase(); List 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代表是false if (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"); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值