今日头条的频道管理与头部的tablayout的相结合的详解

//创建数据库创建表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;
    }
}






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值