频道管理

maven {url “https://jitpack.io”}

依赖

implementation ‘com.github.andyoom:draggrid:v1.0.1’

//两个数组

ArrayList<ChannelBean> channelBeanlist =new ArrayList<ChannelBean>();
ArrayList<Fragment> fraglist=new ArrayList<Fragment>();

oncreate 里:

2个方法

private void getd1() {
    //控件
    tab = findViewById(R.id.tab);
    button = findViewById(R.id.button);
    page = findViewById(R.id.page);

    //适配器
    myadapter = new Myadapter(getSupportFragmentManager());
    page.setAdapter(myadapter);

    //关联
    tab.setupWithViewPager(page);

    //点击按钮
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ChannelActivity.startChannelActivity(MainActivity.this,channelBeanlist);
        }
    });

}


//方法
private void getd2() {

    //数据
    channelBeanlist.add(new ChannelBean("热点",true));
    channelBeanlist.add(new ChannelBean("北京",true));
    channelBeanlist.add(new ChannelBean("房价",true));
    channelBeanlist.add(new ChannelBean("旅游",false));
    channelBeanlist.add(new ChannelBean("条目1",false));
    channelBeanlist.add(new ChannelBean("条目2",false));

    for (int i=0;i<channelBeanlist.size();i++){
        if (channelBeanlist.get(i).isSelect()){
            tab.addTab(tab.newTab().setText(channelBeanlist.get(i).getName()));
            if (i==0){
                fraglist.add(new Frag01());
            }else if(i==1){
                fraglist.add(new Frag02());
            }else{
                fraglist.add(new Frag03());
            }
        }
    }
    //刷新适配器
    myadapter.notifyDataSetChanged();
}

//onActivityResult 里

    String stringExtra = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
    Gson gson=new Gson();
    
    //转换
    Type type = new TypeToken<ArrayList<ChannelBean>>() {}.getType();
    channelBeanlist=gson.fromJson(stringExtra,type);

    //清空
    tab.removeAllTabs();
    fraglist.clear();

    //重新添加tab和Fragment;
    for (int i = 0; i < channelBeanlist.size(); i++) {
    
        if (channelBeanlist.get(i).isSelect()) {
            tab.addTab(tab.newTab().setText(channelBeanlist.get(i).getName()));
            if (i == 0) {
                fraglist.add(new Frag01());
            }else if (i == 1){
                fraglist.add(new Frag02());
            }else {
                fraglist.add(new Frag03());
            }
        }
    }
    myadapter.notifyDataSetChanged();
}

//适配器

class Myadapter extends FragmentPagerAdapter{

    public Myadapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int i) {
        return fraglist.get(i);
    }

    @Override
    public int getCount() {
        return fraglist.size();
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return channelBeanlist.get(position).getName();
    }
}

在Fragment里写频道管理的话

Activity里
transaction.add(R.id.a_frag,list.get(0),“fragmrnt_1”);

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);

    Fragment fr = manager.findFragmentByTag("fragmrnt_1");
    fr.onActivityResult(requestCode,resultCode,data);
   
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值