今日头条的频道管理与头部的tablayout的相结合的详解
2017-09-19 19:27
429 查看
//创建数据库创建表DB里面创建 db.execSQL("create table pindao (type varchar(20),title varchar(20))"); //添加数据
List<String> listTitle = Arrays.asList("推荐", "热点", "本地", "视频", "社会", "娱乐", "科技", "汽车", "体育", "财经", "军事", "国际", "段子", "趣图", "健康", "美女");
for (int i = 0; i < listTitle.size() ; i++) { if(i> listTitle.size()/2 ){ db.execSQL("insert into pindao (type,title) values (?,?)",new Object[]{"其他",listTitle.get(i)}); }else{ db.execSQL("insert into pindao (type,title) values (?,?)",new Object[]{"我的",listTitle.get(i)}); } } //数据库进行增删改查dao类里面 //增加
public void add(String type,String title){ SQLiteDatabase db = helper.getWritableDatabase(); db.execSQL("insert into pindao (type,title) values (?,?)",new Object[]{type,title}); } //删除 public void delete(String title){ SQLiteDatabase db = helper.getWritableDatabase(); db.execSQL("delete from pindao where title =? ",new Object[]{title}); } //按照类型进行查询 public List<Pindao> select(String type){ List<Pindao> list = new ArrayList<>(); SQLiteDatabase db = helper.getWritableDatabase(); Cursor cursor = db.query("pindao",null,"type=?",new String[]{type},null,null,null); while (cursor.moveToNext()){ String type1 = cursor.getString(cursor.getColumnIndex("type")); String title = cursor.getString(cursor.getColumnIndex("title")); list.add(new Pindao(type1,title) ); } return list; } //查询所有 public List<Pindao> select1(){ List<Pindao> list = new ArrayList<>(); SQLiteDatabase db = helper.getWritableDatabase(); Cursor cursor = db.rawQuery("select * from pindao", null); while (cursor.moveToNext()){ String type2 = cursor.getString(cursor.getColumnIndex("type")); String title = cursor.getString(cursor.getColumnIndex("title")); list.add(new Pindao(type2,title) ); } return list; }
//在主类中进行调用因为draggrid自带动画,所以加上依赖
compile 'com.github.andyoom:draggrid:v1.0.1' //如果想长按拖动平移就在manifiest.xml里面进行添加权限
<uses-permission android:name="android.permission.VIBRATE"/>
在主类中定义一个Button按钮,进行点击事件
private List<ChannelBean> list;
private String jsonStr;
public void bt(View view){
if (list==null){//判断集合中是否已有数据,没有则创建 list=new ArrayList<>(); //第一个是显示的条目,第二个参数是否显示 List<Pindao> list_my = dataDao.select("我的"); List<Pindao> list_more = dataDao.select("其他"); for (int i = 0; i <list_my.size() ; i++) { list.add(new ChannelBean(list_my.get(i).getTitle(), true)); } for (int i = 0; i <list_more.size() ; i++) { list.add(new ChannelBean(list_more.get(i).getTitle(),false)); } ChannelActivity.startChannelActivity(HomePagerActivity.this,list); }else if (jsonStr!=null){//当判断保存的字符串不为空的时候,直接加载已经有了的字符串 ChannelActivity.startChannelActivity(HomePagerActivity.this,jsonStr); }}
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode==ChannelActivity.REQUEST_CODE&&resultCode==ChannelActivity.RESULT_CODE) { jsonStr = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY); System.out.println("---"+jsonStr); Gson gson = new Gson(); List<TypeBean> ty = gson.fromJson(jsonStr, new TypeToken<List<TypeBean>>() {}.getType()); System.out.println("------"+ty.size()); for (int i = 0; i <ty.size() ; i++) { if(ty.get(i).isIsSelect() == true){ System.out.println("----"+ty.get(i).getName()); dataDao.delete(ty.get(i).getName()); dataDao.add("我的",ty.get(i).getName()); }else{ System.out.println("----"+ty.get(i).getName()); dataDao.delete(ty.get(i).getName()); dataDao.add("其他",ty.get(i).getName()); } } select(); }
private void select(){ list1 = new ArrayList<>(); List<Pindao> select = dataDao.select("我的"); for (int i = 0; i < select.size(); i++) { String title = select.get(i).getTitle(); for (int j = 0; j <listTitle.size() ; j++) { if(title.equals(listTitle.get(j))){ list1.add(new TitleBean(listPath.get(j),listTitle.get(j))); } } } //进行适配器 myFragmentAdapter = new MyFragmentAdapter(fm, list1); vp.setAdapter(myFragmentAdapter); }
TypeBean类
public class TypeBean { private String name; private boolean isSelect; public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isIsSelect() { return isSelect; } public void setIsSelect(boolean isSelect) { this.isSelect = isSelect; } }
相关文章推荐
- Android GridView 仿今日头条频道管理
- 频道管理和Tablayout
- 自适应 Tab 宽度可以滑动文字逐渐变色的 TabLayout(仿今日头条顶部导航)
- Android 仿今日头条频道管理(上)(GridView之间Item的移动和拖拽)
- 使用TabLayout实现仿今日头条的导航页效果
- 模仿今日头条:频道管理
- Android 高仿 频道管理----网易、今日头条、腾讯视频 (可以拖动的GridView)附源码DEMO
- Android 高仿 频道管理----网易、今日头条、腾讯视频 (能够拖动的GridView)附源代码DEMO
- 仿今日头条TabLayout,侧滑,上拉加载下拉刷新
- Android 高仿 频道管理----网易、今日头条、腾讯视频 (可以拖动的GridView)附源码DEMO
- Android 高仿 频道管理----网易、今日头条、腾讯视频 (可以拖动的GridView)附源码DEMO
- 仿 今日头条布局:TabLayout+ViewPager+Fragment+ListView多条目加载+Webview
- 今日头条频道管理(简易shixian)
- 仿今日头条的频道管理
- Android 高仿 频道管理----网易、今日头条、腾讯视频 (可以拖动的GridView)附源码DEMO
- Android 频道管理仿今日头条
- Android 高仿 频道管理----网易、今日头条、腾讯视频 (可以拖动的GridView)附源码DEMO
- 仿今日头条频道管理
- RecyclerView之ItemTouchHelper仿今日头条频道管理拖动
- 今日头条 频道管理(删除、添加、拖动)